输出结果:TomHanks (请填空。注意,不允许使用任何常量)
#include <iostream>#include <string>
using namespace std;
template <class T>
class myclass{
____;
int nSize;
public:
myclass(____,int n){
p=new T;
for(int i=0;i<n;++i)
p=a;
nSize = n;
}
~myclass(){
delete [] p;
}
void Show()
{
for(int i=0;i<nSize;++i){
cout<<p;
}
}
};
int main(){
char * szName="TomHanks";
myclass<char> obj(____);
obj.Show();return 0;
} #include <iostream>
#include <string>
using namespace std;
template <class T>
class myclass
{
T *p;
int nSize;
public:
myclass(string a, int n)
{
p = new T;
for(int i = 0; i < n; ++i)
p = a;
nSize = n;
}
~myclass()
{
delete[] p;
}
void Show()
{
for(int i = 0; i < nSize; ++i)
{
cout << p;
}
}
};
int main()
{
char *szName = "TomHanks";
myclass<char> obj(szName, strlen(szName));
obj.Show();
return 0;
}
能编译出来吗?我编译怎么提示strlen有错误 empire 发表于 2017-4-27 23:13
能编译出来吗?我编译怎么提示strlen有错误
那加一个头文件不就好了
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
template <class T>
class myclass
{
T *p;
int nSize;
public:
myclass(string a, int n)
{
p = new T;
for(int i = 0; i < n; ++i)
p = a;
nSize = n;
}
~myclass()
{
delete[] p;
}
void Show()
{
for(int i = 0; i < nSize; ++i)
{
cout << p;
}
}
};
int main(void)
{
char *szName = "TomHanks";
myclass<char> obj(szName, strlen(szName));
obj.Show();
return 0;
}
人造人 发表于 2017-4-28 05:04
那加一个头文件不就好了
不行吧,这是一道填空题,加上去是没错,但如果是考试不能这样吧,有没有其它写法? 本帖最后由 w1550441298 于 2017-4-28 10:56 编辑
我看看 empire 发表于 2017-4-28 10:23
不行吧,这是一道填空题,加上去是没错,但如果是考试不能这样吧,有没有其它写法?
#include <iostream>
#include <string>
using namespace std;
template <class T>
class myclass
{
T *p;
int nSize;
public:
myclass(string a, int n)
{
p = new T;
for(int i = 0; i < n; ++i)
p = a;
nSize = n;
}
~myclass()
{
delete[] p;
}
void Show()
{
for(int i = 0; i < nSize; ++i)
{
cout << p;
}
}
};
int main()
{
char *szName = "TomHanks";
myclass<char> obj(szName, 8);
obj.Show();
return 0;
}
myclass<char> obj(szName,((string)szName).size()); 很简单的一个强制转换,直接给2楼的代码的第二个参数改成这句就行了 w1550441298 发表于 2017-4-28 11:05
myclass obj(szName,((string)szName).size()); 很简单的一个强制转换,直接给2楼的代码的第二个参数改成这 ...
非常感谢{:5_91:}
页:
[1]