我有一个非常简单的问题。我正在尝试学习 C++,但遇到了一个小问题。这是代码
系统.h
#include <iostream>
#include "processor.h"
using namespace std;
class sys
{
public:
int id;
sys()
{
id=0;
}
};
处理器.h
#include <iostream>
using namespace std;
class proc
{
public:
const sys* s1;
s1=new sys();
};
错误说
"error C2512: 'sys' : no appropriate default constructor available"
有一个默认的构造函数。
我是 C++ 的初学者,所以请解释我做错了什么。谢谢。
最佳答案
- 您不在类体内初始化类成员,而是在类构造函数中进行初始化。
const
成员是特殊成员,它们必须在 Member initialization list 中初始化.- 尽可能避免使用动态分配的内存,如果您必须使用智能指针而不是原始指针。
proc() : s1(new sys())
{
}
关于c++ - 在另一个类中初始化指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18943785/