C++ '的隐式转换;C*';至';A*';在函数C::add()中不允许

C++ '的隐式转换;C*';至';A*';在函数C::add()中不允许,c++,C++,在编译以下代码时,我收到了一条错误消息,如“函数C::add()中不允许将'C*'隐式转换为'A*” #包括 #包括 甲级 { 公众: INTA; int get() { 返回10; } }; B类:受保护的A类 { .............................. }; 丙类:公共乙类 { 公众: void add() { cout在代码的第2行后面添加了“using namespace std”之后,运行此命令时没有收到任何错误。 完整代码 #include<ios

在编译以下代码时,我收到了一条错误消息,如“函数C::add()中不允许将'C*'隐式转换为'A*”

#包括
#包括
甲级
{    
公众:
INTA;
int get()
{
返回10;
}
};
B类:受保护的A类
{
..............................
};
丙类:公共乙类
{
公众:
void add()
{

cout在代码的第2行后面添加了“using namespace std”之后,运行此命令时没有收到任何错误。

完整代码

#include<iostream>
#include<stdio.h>
using namespace std;
class A
{    
    protected:
    int a;
    int get()
    {
       return 10;
    }
};
class B:protected A
{
  // ..............................

};
class C:public B
{
    public:
    void add()
    {
       cout<<a;
       cout<<get();
    }
};
int main()
{
    C ob;
    ob.add();
    //getch();
}
#包括
#包括
使用名称空间std;
甲级
{    
受保护的:
INTA;
int get()
{
返回10;
}
};
B类:受保护的A类
{
// ..............................
};
丙类:公共乙类
{
公众:
void add()
{

CUT<代码>主<代码>必须在C++中返回<代码> int <代码>。我运行了您的示例,无法复制您的警告:在代码>检查代码>https://ideone.com/ubwq6y
请将中的代码粘贴到您的答案中。(链接可能会随着时间的推移而丢失。)而且,顺便说一句,链接应该格式化为链接,而不是源代码(即使它们引用了源代码)。感谢您的重播。此错误发生在Tc编译器(windows)中
#include<iostream>
#include<stdio.h>
using namespace std;
class A
{    
    protected:
    int a;
    int get()
    {
       return 10;
    }
};
class B:protected A
{
  // ..............................

};
class C:public B
{
    public:
    void add()
    {
       cout<<a;
       cout<<get();
    }
};
int main()
{
    C ob;
    ob.add();
    //getch();
}
std::cout<<a;
std::cout<<get();