我有一个包含参数化构造函数的类,在创建对象时需要调用它。该类还包含一个私有副本构造函数,该构造函数限制为其创建对象。现在如何调用此类的参数构造函数。我认为我们可以创建指向该类的指针引用。但是如何使用引用调用参数构造函数?

我的程序:

#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;
}

最佳答案

您需要的语法是ABase *ab = new ABase(foo);,其中foostd::string实例或std::string可以进行构造的东西,例如const char[]文字,例如。 "Hello"

不要忘记调用delete释放内存。

(或者,如果不需要指针类型,则可以编写ABase ab(foo)。)

08-27 02:13