gpt4 book ai didi

c++ self 在初始化列表中

转载 作者:太空宇宙 更新时间:2023-11-04 14:38:29 25 4
gpt4 key购买 nike

我有这段代码

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'

这是怎么做到的?

最佳答案

你不能那样调用构造函数。可以,但是会创建一个无名的临时对象。在不引用其他构造函数的情况下编写复制构造函数。此外,如果使用 std::string 而不是 char *,则不需要复制构造函数。如果你坚持使用 char *,你还需要一个析构函数和一个赋值运算符。

关于c++ self 在初始化列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6030763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com