C++ 关于error C2248: : 无法访问 private 成员(在“。。。”类中声明)的问题

基类的拷贝构造函数和赋值运算符定位为private,我现在想重载基类的一个函数,要怎么做?头文件:classA1{private:staticA1instance;A1(... 基类的拷贝构造函数和赋值运算符定位为private,我现在想重载基类的一个函数,要怎么做?
头文件:
class A1
{
private:
static A1 instance;
A1();
A1(const A1&);
A1& operator=( const A1&);

public:
static A1& GetInstance();

virtual void StartUpTSCard();
};

class B1: public A1
{
public:
virtual void StartUpTSCard();
};

源文件
A1 A1::instance;

A1::A1()
{

}

A1& A1::GetInstance()
{
return instance;
}

void A1::StartUpTSCard()
{
printf("1111\n");
}

B1::B1()
{

}

void B1::StartUpTSCard()
{
printf("2222\n");
}
比如我想重载A1里面的StartUpTSCard函数

如果是调用A1里面的是A1::GetInstance().StartUpTSCard()
那我想调用B1里面的StartUpTSCard怎么办
展开
 我来答
赦聚
2015-06-17 · TA获得超过1667个赞
知道小有建树答主
回答量:515
采纳率:0%
帮助的人:335万
展开全部

创建B1的对象,然后用B1的对象调用咯,

基类若想要调用子类函数的话,可以创建A1*类型的指针,用其调用B1中的StartUpTSCard()


A1* b = new B1();
b-> StarUpTsCard();

 啊,至于错误的原因,我想你你把A1 A1::intance;这行删了就行

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式