c++ 私有继承自定义对象后 无法返回相应类型对象

#include<string>
#include<iostream>
using std::string;

class card {//自定义类对象
private:
	int a;
public:
	card() { a = 0; }
};

class base : private card{//私有继承自定义对象
private:
	int num;
public:
	base(int n) :card(), num(n) {}
	base(int n) :card(), num(n) {}
	~base() {}
};

class pro : public base {//公有继承base对象
public:
	card result();//这里没打算直接调用base的card成员,而是返回一个card成员
};

在最下面的card result() 编译器就开始报错无法访问card。。可我不是想访问card,而是想返回他啊。。

更奇怪的是把上面card定义删除后,将所有card替换成string,就不会报错。。。看到这就直接迷了。

#include<string>
#include<iostream>
using std::string;



class base : private string{
private:
	int num;
public:
	base(int n) :string(), num(n) {}
	base(int n) :string(), num(n) {}
	~base() {}
};

class pro : public base {
public:
	string result();
};

 

C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html