繁体   English   中英

将char数组传递给参数化的构造函数

[英]Pass char array to parameterized constructor

class books{
public:
    char* genre;
    books(char *n);
};

books::books(char*n){
    genre = new char[strlen(n)+1];
    strcpy(genre,n);
}

int main(){
   book harrypotter;
   char n[20]; 
   cin>>n;
   harrypotter.books(n);
}

帮助我了解我的错在哪里? 我认为我缺少一个回合指针:(如何将n [20]数组分配给* genre类的成员?

构造函数只能在声明对象时调用。 您的构造函数看起来不错,但main的代码却不正确。

int main() {
   char n[20]; 
   cin >> n;
   books harrypotter(n);            // calling parameterized constructor
   cout << harrypotter.genre;      // == cout << n;     
}

另外,请记住,使用new分配的任何内存都不会被释放,除非您明确地这样做。 使一个析构函数可以做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM