c++初学者求问基础问题一个
在要求交换两个变量值时如何区别普通变量和字符串?(即如何改以下错误程序?)
#include "iostream.h "
#include "iostream.h "
template <class t>
class data
{
private:
t m;
t n;
public:
data(t m1,t n1)
{
m=m1;
n=n1;
}
data(char *m1,char *n1)
{
strcpy(m,m1);
strcpy(n,n1);
}
void charge()
{
t i;
i=m;m=n;n=i;
}
void charge()
{
char *i;
strcpy(i,m);
strcpy(m,n);
strcpy(n,i);
}
void print()
{
cout < <m < < < <n < <endl;
}
};
int main()
{
data <int> a(1,3);
a.print();
a.charge();
a.print();
data b( "wfas ", "sfof ");
b.print();
b.charge();
b.print();
return 0;
}
[解决办法]
#include <iostream>
template <class t>
class data
{
private:
t m;
t n;
public:
data(t m1,t n1)
{
m=m1;
n=n1;
}
void charge()
{
t i;
i=m;m=n;n=i;
}
void print()
{
std::cout < <m < < " " < <n < <std::endl;
}
};
int main()
{
data <int> a(1,3);
a.print();
a.charge();
a.print();
data <char *> b( "wfas ", "sfof ");
b.print();
b.charge();
b.print();
char ch;
std::cin> > ch;
return 0;
}
编译,运行通过
运行结果:
1 3
3 1
wfas sfof
sfof wfas