摘要: 1: 如果不用,及时初始化了类,也可以不定义静态成员变量。2:只能将静态成员变量放在实现单元中,不能放在.h文件中。3: 静态变量的构造函数总是在进入main函数之前被调用,析构函数总是在main推出之后被调用。可以专门定义一个辅助类,将需要在main函数之前执行的语句放在他的构造函数中,在定义一个static 他的对象。 阅读全文
posted @ 2012-03-13 23:59 王帅901 阅读(163) 评论(0) 推荐(0) 编辑
摘要: #define DEBUG(X) cout<<#X" = "<<X<<endl 用来打印变量#define TRACE(S) cout<<#S<<endl;S 用来打印并执行语句#define FIELD(A) char* A##_string; int A##_size 标志黏贴,这个真的不懂。。。。 阅读全文
posted @ 2012-03-13 23:18 王帅901 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 具体可看thinking C++ 45~47页:1:注意到应该在面先声明一下 struct A;之后虽然没有struct A 的定义,但是可以用他的地址作为参数传入要被友元的函数中: Y::f(X*)应为地址大小是一定的。2: 再类内部声明的结构体(类),如果不声明为类的友元,是无法访问其私有成员变量的。 阅读全文
posted @ 2012-03-13 11:36 王帅901 阅读(212) 评论(0) 推荐(0) 编辑
摘要: A.h定义一个类,B.h中也定义一个,A.h中include B.h,同时A类也定义了一个B类指针,同样B.h include 了A.h,也有一个A类指针,当然头文件中有pragma once,但是编译时A.cpp说找不到B这个标识符,同样B中也找不到A,好像没包含一样:解决方法:A.h和B.h互相彼此包含,将导致编译器无休止的彼此包含,所以编译器会报错。正确的做法是采用类前声明,方法避免循环包含。具体做法如下:A.h中写#include "B.h"在A.h中可以直接定义类B的对象;比如 B m_b;而在B.h中不能直接写#include "A.h"应该 阅读全文
posted @ 2012-03-13 10:15 王帅901 阅读(947) 评论(0) 推荐(0) 编辑