我有一个由参数化构造函数组成的类,我需要在创建对象时调用它。该类还包含一个私有拷贝构造函数,用于限制为其创建对象。现在如何调用此类的参数构造函数。我想我们可以创建一个指向类的指针。但是如何使用引用调用参数构造函数?
我的计划:
#include<iostream>
#include<string>
using namespace std;
class ABase
{
protected:
ABase(string str) {
cout<<str<<endl;
cout<<"ABase Constructor"<<endl;
}
~ABase() {
cout<<"ABASE Destructor"<<endl;
}
private:
ABase( const ABase& );
const ABase& operator=( const ABase& );
};
int main( void )
{
ABase *ab;//---------How to call the parameter constructor using this??
return 0;
}
答案 0 :(得分:1)
您需要的语法是ABase *ab = new ABase(foo);
其中foo
是std::string
个实例或std::string
可以构建的内容,例如const char[]
字面值,例如"Hello"
。
请勿忘记致电delete
以释放记忆。
(如果您不需要指针类型,也可以写ABase ab(foo)
。)
答案 1 :(得分:1)
你不能这样做。因为你的ctor是protected
。请参阅(与您的州无关,但仅了解更多信息):Why is protected constructor raising an error this this code?