使用C++类,您可以让派生类从其父类继承变量.如何定义派生类,以便var2不继承derivclass?
class mainclass{
public:
int var1;
char var2;
void test(){
cout<<var1<<var2<<endl;
}
}
class derivclass : mainclass{
public:
void test(){
cout<<var1<<var2<<endl;
//want a compiler error here that var2 is not defined
}
}
Run Code Online (Sandbox Code Playgroud)
阻止成员在C++中继承的规范方法是声明它private.尝试访问它的派生类将引发编译器错误.它看起来像这样:
class mainclass{
public:
int var1;
void test(){
cout<<var1<<var2<<endl;
}
private:
char var2;
}
class derivclass : mainclass {
public:
void test(){
cout<<var1<<var2<<endl;
//compiler error here; var2 is not accessible
}
}
Run Code Online (Sandbox Code Playgroud)
这是实现您所要求的最直接的方式.
你可以做到private。但你可能不应该。
它不应该从 Base 继承某些东西的事实意味着它可能根本不应该直接从 Base 继承。
而是创建另一个基类并使这两个类从该基类继承。
class Baseclass{
public:
void test(){
cout<<var1<<endl;
}
protected:
int var1;
}
class mainclass : public Baseclass{
public:
char var2;
void test(){
cout<<var1<<var2<<endl;
}
}
class derivclass : Baseclass{
public:
void test(){
cout<<var1<<endl;
}
}
Run Code Online (Sandbox Code Playgroud)