#inlude "MySock.h" 和 class CMySock;有什么区别,互换好像不行吧 #inlude "MySock.h" 和 class CMySock;有什么区别,互换好像不行吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是引进文件头,一个是用#include 引进,一个是直接用类的声明。 是这样的:在一个头文件中:#inlude "MySock.h" calss cs{ public: CMySock m_Sock; //可以这样申明 CMySock *m_pSock; //也可以这样申明};而class CMySock;calss cs{ public: CMySock m_Sock; //不可以这样申明 CMySock *m_pSock; //但可以这样申明};具体可以看看《Effective C++》。 Class CMySocket;表示下面要用到 CMySocket 这个类定义,#include "MySocket.h"表示要用到CMySocket里面的方法. 如sans所说之所以用class CMySock;的时候不能CMySock m_Sock;是因为这个时候要为m_Sock分配空间,但class CMySock的作用仅仅是声明有这个类存在,至于这个类所占空间是多大,不知道,所以不能这样用。能用class CMySock的地方尽量不要用#include "mysock.h",能够有效避免循环包含(就是a.h包含b.h,b.h又包含a.h的情况)。 能用class CMySock的地方尽量不要用#include "mysock.h",这样可以降低编译器的依赖性。可能会降低重新编译的时间。 <多核程序设计>实验指导书中的事件实验,怎样使用事件? 程序性能问题 循环结构 急!颜色设置 有没有将普通字符串直接转到UTF8格式的函数? 请问用vc6编写ftp服务器的问题 急!请高手指点关于YUV的问题! 如何根据IP或机器名字地址来判断一台机器是否登陆到win2000域? CFormView是用来干吗的?怎么用啊? 关于线程相关函数调用的问题,谢谢! 怎么使一个总窗口在另一个窗口的上面 关于几个函数的区别的问题?请多多指教。 友元函数的一个问题!
在一个头文件中:
#inlude "MySock.h"
calss cs
{
public:
CMySock m_Sock; //可以这样申明
CMySock *m_pSock; //也可以这样申明
};而
class CMySock;calss cs
{
public:
CMySock m_Sock; //不可以这样申明
CMySock *m_pSock; //但可以这样申明
};
具体可以看看《Effective C++》。
表示下面要用到 CMySocket 这个类定义,
#include "MySocket.h"
表示要用到CMySocket里面的方法.
之所以用class CMySock;的时候不能
CMySock m_Sock;是因为这个时候要为m_Sock分配空间,但class CMySock的作用仅仅是声明有这个类存在,至于这个类所占空间是多大,不知道,所以不能这样用。能用class CMySock的地方尽量不要用#include "mysock.h",能够有效避免循环包含(就是a.h包含b.h,b.h又包含a.h的情况)。