我是学生,我正在学习c ++语言。
这是我的班级;
class Book
{
private:
int location;
char bookNum;
char bookName[100];
}
我将通过构造函数
设置字符串bookName“DEFAULT”#include "Bookclass.h"
using namespace std;
Book::Book()
:location(0), bookNum('0')
{
strcpy(bookName, "DEFAULT");
cout << "default constructor" << endl;
}
并且构造函数中的strcpy发生错误。当我使用调试器(Dev c ++)时,它告诉我发生了SIGINT错误。当我运行它时,它会停止运行。
答案 0 :(得分:0)
关于C ++最令人惊奇的事情之一是标准库,它解决了所有这些繁琐的代码问题。考虑将bookName
替换为std::string
:
#include <string>
class Book
{
Book();
private:
int location;
char bookNum;
std::string bookName;
}
Book::Book()
:location(0), bookNum('0'), bookName("DEFAULT")
{
cout << "default constructor" << endl;
}
bookName
将在构造函数中设置为“DEFAULT”,并重新分配它就像bookName = "new book name";
答案 1 :(得分:0)
您的代码在我的PC上按预期工作,因此,代码不是问题,您的编译器和/或IDE在此处有错误。
查看here,SIGINT
表示键盘中断。
我建议您将IDE更改为Visual Studio或使用C ++的NetBeans。
另外,老实说这是C语言,而不是C ++。