#include <iostream>
class ZZ
{
public:
void print()
{
std::cout << "hello\n";
}
};
class YY : public ZZ
{
public:
void print()
{
using ZZ::print;
print();
}
};
int main()
{
YY temp;
temp.print();
getchar();
return 0;
}
为什么上面的这段代码回报错?error: 'ZZ' is not a namespace or unscoped enum using ZZ::print;
巴扎黑2017-04-17 14:59:58
因為你那個用法是錯的,這個用法是c++11
新增的
class YY : public ZZ
{
public:
using ZZ::print;
};
你寫在成員函數裡面,那麼便成為了擴展一個成員函數的作用域,這當然不會成功。 。
怪我咯2017-04-17 14:59:58
using寫錯地方了!不應該寫在成員函數內部!另外,兩個print函數同名,會出現無限遞歸,應該要為YY中的print重新取個名字!
class YY : public ZZ
{
public:
using ZZ::print;
void YYprint()
{
print();
}
};