pb使用
摘要:已有动态库: 用 .\protoc.exe --proto_path=SRC --cpp_out=DST SRC/test.proto 生成文件(自己建立 src 和dst 文件夹 test.proto 放到src文件下)
阅读全文
dll导出类:成员函数中存在string类型导致编译报错 _acrt_first_block == header
摘要:根本原因:对象在析构时不正确的释放内存导致。 std::string是STL中定义的模板类,所以编译器在编译动态库时会将std::string实例化,在编译exe时也会将其实例化,也就是说有两套std::string实例代码分别在exe和dll中. //实例: //动态库中 bool MyDebug
阅读全文
设置当前目录
摘要:exe调用dll,dll需要读取配置文件,此时需要dll能找到配置,即在exe工作目录下寻找,而不是dll编译时工作目录 char sBuf[1024]; char* ptr; if (GetModuleFileName(NULL, sBuf, sizeof(sBuf))) { ptr = strr
阅读全文
函数对象
摘要:一个包含零个数据,一个成员函数的类 使用operate()实现
阅读全文
public的成员函数使用调用private函数的常规技术
摘要:bool contains (const comparable &x) const { return contains(x,root); }
阅读全文
类成员指针
摘要:与常规指针不同,一个指向成员变量的指针并不指向一个内存位置。它指向的是一个类的特定成员,而不是指向一个特定对象的特定成员。 一般将指向数据成员的指针看作一个偏移量。 表示一个特定成员的位置距离对象的起点有多少个字节。 int DemoClass::*ipm = 0; void (Shape::*pm
阅读全文
重载->
摘要:必须定义为类成员函数 不接受显示形参,必须返回指向类类型指针或定义了箭头操作符的类类型对象 可以使当前类对象调用其他类中的成员(如智能指针) #include <iostream> #include <vector> using namespace std; class Dog{ public: s
阅读全文
显示与隐式类型转换
摘要:1.explicit 通常,除非有明显的理由想要定义隐式转换,否则,单形参构造函数应该为explicit。 将构造函数设置为explicit可以避免错误,并且当转换有用时,用户可以显式的构造对象。 string null_book = "9_999_99999_9" item.same_isbn(s
阅读全文
size_t与size_type
摘要:为了使子的程序有很好的移植性,c++程序员应该尽量使用size_t和size_type而不是int,unsigned 1.size_t使全局定义的类型 size_type是STL类中定义的类型属性,用以保存任意string和vector类对象的长度 2.string::size_type 一般是un
阅读全文
reinterpret_cast、dynamic_cast
摘要:reinterpret_cast:强制类型转换符 dynamic_cast:依赖于RTTI信息,转换时dynamic_cast会检查转换的Source对象是否真的可以转换成target类型
阅读全文
重载<<
摘要:当定义符合标准库iostream规范的输入或输出操作符时,必须使它成为非成员操作符 <<是二元操作符,接受2各参数,第一个参数<<第二个参数,返回第一个参数引用,为了可以连写:os<<pt1<<pt2
阅读全文
怎样在整个类中恒定常量
摘要:Class A { enum{SIZE1 = 100,SIZE2 = 200}; int array1[SIZE1]; int array2[SIZE2]; }; 枚举常量不会占用对象的存储空间,它们在编译时被全部求值 缺点:隐含数据类型为整数,最大值有限,不能表示浮点数
阅读全文
CString 与 string 转换
摘要:string line; CString str(line.c_str());
阅读全文
新标准数值与string之间转换
摘要:int i = 42; string s = to_string(i); double d = stod(s);
阅读全文
float double 有效位数
摘要:一般来说,float有7个有效位,doubley有16个有效位
阅读全文
long转时间
摘要:long timeymd; CTime time(timeymd); int y = time.GetYear (); .... int s = GetSecond();
阅读全文
调试输出
摘要:1 #include <fstream> 2 std::ofstream outf("c:\\debug.csv"); 3 outf<<endl; 4 outf<<"," outf<<sample
阅读全文
多态种类
摘要:重载多态 函数重载、运算符重载 强制多态 不同类型数据运算,强制类型转换 包含多态 虚函数(动态绑定) 模板多态 类模板
阅读全文