将 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] 数组分配给类的 *流派成员?
构造
函数只能在声明对象时调用。您的构造函数看起来没问题,但main
中的代码却不正常。
int main() {
char n[20];
cin >> n;
books harrypotter(n); // calling parameterized constructor
cout << harrypotter.genre; // == cout << n;
}
此外,请记住,在显式执行此操作之前,不会释放使用 new
分配的任何内存。创建一个析构函数来做到这一点。
相关文章:
- C++:使用运算符 = 调用多参数构造函数
- 通过零参数构造函数创建的 glm::mat4 应该包含哪些值?
- 好奇的混合与可变参数构造函数
- 具有默认值的单个参数构造函数是否与默认构造函数相同?
- 为什么我们需要创建一个单参数构造函数来使用临时的无名称对象
- 在可变参数构造函数中初始化常量数组
- C++ 显式多参数构造函数歧义
- 零一参数构造函数
- 可变参数构造函数中的 SFINAE
- 当没有显式关键字与单参数构造函数一起使用时,编译器可以发出警告
- 可变参数类模板和可变参数构造函数
- 确保模板参数类型与其可变参数构造函数的类型匹配
- C++默认参数构造函数与内联初始化优先级
- 如何在 c++ 中将包含复制构造函数的类的参数构造函数称为私有?
- 自动存储中没有无参数构造函数的类对象和异常
- 警告:用两个参数构造函数返回对象时,表达结果未使用
- 如何在C++中调用无参数构造函数
- 在 c++ 中具有多个参数构造函数的模板类存在问题
- 可变参数构造函数优先于用户提供的移动构造函数,除非默认
- 如何从可变参数构造函数参数构造任何对象?