C++ 用类指针作为参数实例化构造函数
C++ 用类指针作为参数实例化构造函数,c++,C++,a.hpp文件: namespace hello { class A : public hi::B public: A(C* my_hello); private: const C* p_hello; }; hello::A *random = new hello::A(); a.cpp: hello::A::A(C* my_hello) : m_name(0); { } 在b.cpp文件中: namespace hel
a.hpp
文件:
namespace hello
{
class A : public hi::B
public:
A(C* my_hello);
private:
const C* p_hello;
};
hello::A *random = new hello::A();
a.cpp
:
hello::A::A(C* my_hello)
: m_name(0);
{
}
在b.cpp
文件中:
namespace hello
{
class A : public hi::B
public:
A(C* my_hello);
private:
const C* p_hello;
};
hello::A *random = new hello::A();
//->此行中的错误表示没有构造函数的实例如何实例化构造函数当.hpp文件中的参数中有指向类的指针时,您不是为类定义构造函数,而是键入了
hello(…)
此外,由于您定义了构造函数,您的类不再有默认构造函数(即不需要任何参数的构造函数)
在新表达式中调用类的构造函数时,必须提供所有必需的参数。是,因为只有构造函数接受一个参数-没有无参数constructor@UnholySheep如果我做了像newhello::A(C*)这样的事情,那么它也不起作用。你能告诉我我需要做什么吗?用四个空格缩进以格式化代码,或者选择并点击
{}
按钮。此构造函数有一个强制参数,因此除非你创建一个没有参数的构造函数变量,或者为此构造函数指定一个默认值,如=nullptr
,否则此代码将无法编译。无效。在参数中添加nullptr有效。谢谢@tadman