我依稀记得在C ++中看一个例子,一个类中有一个成员对象,第一个暴露了一个属于第二个的函数,就像它自己的一样。
这是一个解释我的意思的例子:
class Engine{
int cylinders;
public:
/* ... */
int getCylindersCount() { return this->cylinders;}
};
class Car {
Engine engine;
public:
/* define getCylindersCount() as if it were a function in class Car */
/* something like Car::getCylindersCount is engine.getCylindersCount(); */
};
所以基本上Car类的用户可以这样做:
Car mytoyota;
mytoyota.getCylindersCount();
现在,我不是在谈论一个简单的包装器,如:
class Car {
Engine engine;
public:
int getCylindersCount() { return engine.getCylindersCount();}
};
你能帮我记住实现这个目的的语法吗?
感谢。
答案 0 :(得分:0)
没有这样的事情。
但是您所指的语法确实存在:这是一种不推荐使用的方式来更改继承成员函数的访问限定符:
class A
{
public:
void foo() {}
};
class B : A
{
public:
A::foo; // Otherwise A::foo() would be private.
// A non-deprecated way to do the same thing:
// using A::foo;
};