将 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] 数组分配给 class 的 *genre 成员?
构造函数只能在对象声明时调用。您的构造函数看起来不错,但 main
中的代码不是。
int main() {
char n[20];
cin >> n;
books harrypotter(n); // calling parameterized constructor
cout << harrypotter.genre; // == cout << n;
}
此外,请记住,使用 new
分配的任何内存在您明确这样做之前不会被释放。制作一个析构函数来做到这一点。
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] 数组分配给 class 的 *genre 成员?
构造函数只能在对象声明时调用。您的构造函数看起来不错,但 main
中的代码不是。
int main() {
char n[20];
cin >> n;
books harrypotter(n); // calling parameterized constructor
cout << harrypotter.genre; // == cout << n;
}
此外,请记住,使用 new
分配的任何内存在您明确这样做之前不会被释放。制作一个析构函数来做到这一点。