【C++宏定义小tips】教程文章相关的互联网学习教程文章

《Effective C++》笔记:Tips09-Tips12【代码】【图】

Tips09:绝不在构造和析构过程中调用virtual函数PS:本人觉得,应该改成不要在基类的构造和析构中调用virtual函数一、如果在基类的构造函数中调用virtual函数,调用谁的?class Transaction { public:Transaction(void){logTransaction();}virtual ~Transaction(void){}virtual void logTransaction() const = 0; };class BuyTransaction :public Transaction{ public:BuyTransaction(void){}~BuyTransaction(void){}void logTrans...

【tips】C++求vector中的最大最小值【代码】

利用algorithm库里的max_element和min_element可以得到vector的最大最小值,配合distance函数可以得到最大值的位置#include<vector> #include<algorithm>usingnamespace std;int main(){vector<int> myVec = {1,4,2,5,2,7,9,3,9};vector<int>::iterator myMax = max_element(myVec.begin(), myVec.end());cout << *myMax << "" << distance(myVec.begin(), myMax) << endl;vector<int>::iterator myMin = min_element(myVec.begin(...

C++学习日常——little tips【代码】

C++学习日常——little tips关于类的构造函数单参数的构造函数,应该加上explicit关键字,防止隐式转换。 class myString{ public:myString(size_t size){ //单参数构造函数_size = age;_ptr = (char*)malloc(size + 1);}Person(size_t size, char* ptr = (char*)malloc(10)){ //除第一个参数外,其余参数有默认值的构造函数_size = size;} private:int _size;char* _ptr; };int main(){myString str1(20); //合法,匹配第一个构...

C++宏定义小tips

宏定义宏定义是C++编程中一种很常见的语法,有很多使用场景,例如定义一个通用的常量定义一个宏函数实现条件编译其他第一种使用场景应该是最多的,一般格式如下: #define PRICE 20 即定义了一个名为PRICE的宏,其值为20。需要注意的是,宏定义本身对C++编译器并不可见,它只是一条 预处理 指令,在预处理阶段,代码中多有的PRICE都会被替换成20。所以在一些编程书籍中,是不提倡使用宏定义来定义变量的,因为在编译出错时,报错信...

Effective C++阅读记录(tips 1 - 4)【代码】

Tips01:View C++ as a federation of languages 把C++看作语言的联邦。C++包括了C、 Object-Oriented C++(C with class)、 Template C++、 STL。 C++高效守则视情况而变化,取决于你使用C++的哪一部分。 Tips02:尽量以const, enum, inline替换#define #define不被视作源码的一部分,在源码被编译器处理之前就被预处理器处理了。所以当#define出现错误时,会很难去追踪这个错误。最好的处理就是使用const常量代替宏。在替换时有两...

C++ tips记录

十六进制转十进制(进制转化)#include <sstream> #include <string> using namespace std;int main() {int nOut = 0;string name = "d0"; // 十六进制stringstream ss;ss << hex << name ;ss >> nOut; // 转化后的十进制为208return 1; }