首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

using CThread:Start;代表什么意思呀?解决思路

2012-03-14 
using CThread::Start代表什么意思呀?classCSocketServer:protectedCThread{public:classSocket//1frien

using CThread::Start;代表什么意思呀?
class   CSocketServer   :     protected   CThread
{
      public:
 
            class   Socket;                 //1
            friend   class   Socket;   //2            
            using   CThread::Start;//3


...


}

(1)   请问可以不可直接用friend   class   Socket;声明Socket为友元类,不需要class   Socket;这句话.
(2)   using   CThread::Start;是什么意思呀,using的这种用法怎样解释?
以上代码编译没有问题的.



[解决办法]
class Socket; //1
声明一个类
friend class Socket; //2
只有在2之前声明了类Socket,编译器才能识别Socket
using CThread::Start;//3
声明了函数Start,从命名空间CThread里引入函数Start
[解决办法]
考虑这个例子:
class A
{
public:
void fa(){}
protected:
void fb() {}
};

class B:private A
{
public:
using A::fa;
protected:
using A::fb;
}
通过B的对象可以访问A::fa, 同时B的子类也可以访问A::fb.
[解决办法]
loops(迷茫) ( )
区别还是有的,引入using CThread::Start;后,子类对象可以直接在类域外使用start函数(前提是start不是私有类型)。
例如:
#include <iostream>
using namespace std;
class a
{
public:
void start(){cout < < "this a class " < <endl;}
};
class b: protected a
{
public:
using a::start;
void print() { start();}
};
int main()
{
b x;
x.print();
x.start();
return 0;
}

热点排行