【发布时间】:2011-05-17 12:28:19
【问题描述】:
我有这个代码sn-p
class Osoba{
Osoba(char* imie,int wiek){
this->imie=new char[strlen(imie)+1];
strcpy(this->imie,imie);
this->wiek=wiek;
cout<<"Utworzono Osobe "<<this->imie<<endl;
}
Osoba(Osoba& x){
Osoba(x.imie,x.wiek);
}
[...]
当我调用复制构造函数时它不起作用(创建和销毁对象)。
编辑: 如果我使用
Osoba(Osoba& x): Osoba(x.imie,x.wiek){
我收到type 'class Osoba' is not a direct base of 'Osoba'
这是怎么做到的?
【问题讨论】:
-
在 C++ 中使用
std::string而不是char *来表示字符串。它使事情变得简单得多。此外,您的标题暗示了一些关于初始化列表的内容,但您在显示的代码中没有使用任何内容。 -
@c0wb0y 我知道它只是用于教育目的 -> 为什么我使用 char*(动态内存分配等)