摘要:
有些情况自己是不希望生成拷贝构造函数以及拷贝赋值运算符的,这种时候不能只是自己不去编写这些函数,因为这样编译器会自动的去生成这些函数。保险一点的做法是将拷贝构造函数以及拷贝赋值运算符都声明为private的。这样既阻止了编译器生成默认的版本,而且又阻止了别人去调用它。 注意上面的这条“将成员函数... 阅读全文
摘要:
如果想在一个内含reference成员的class内支持赋值操作,必须自己定义copy assignment操作符。而且面对“内含有const成员的”class,编译器的反应也是相同的,由于更改const成员是非法的,所以编译器不知道如何在其自己生成的赋值函数之中去面对他们。templatecl... 阅读全文
摘要:
构造函数使用本体括号进行复制的情况不叫做初始化而是叫做赋值语句,只有在成员初始化列表中直接进行的 才叫做初始化。ABentry::AbEntry(const std::string & name, const std::string & address, ... 阅读全文
摘要:
const成员函数的一般好处有:它使得class接口比较容易理解。它使得操纵const对象成为可能。使用的过程中应该在const与non const成员函数之间避免代码重复:class TextBlock{ public: ... const char & operator[... 阅读全文
摘要:
这里说的意思其实相当于,宁可以用编译器来替换预处理器因为使用预处理器可能使得被处理过的东西无法进入符号表,例如 #define MAXLEN 16 这里的MAXLEN并没有进入符号表,这样有编译错误出现的时候,提示的都是16而并不是MAXLEN,这样就会带来很多的错误。对于上面的那个式子,可以尝试的... 阅读全文
摘要:
c++是一个多重泛型编程语言,其所支持的泛型有:面向过程编程(procedual)面向对象编程(object-oriented)面向函数编程(functional)泛型编程(generic)元编程模式(metaprogramming):元编程模式是什么模式,没读懂就是了 阅读全文
摘要:
这个问题是vs准备弃用strcpy带来的,因为觉得他不太安全可以尝试在main函数前面加上#pragma warning(disable:4996)即可解决这个问题 阅读全文
摘要:
说的有点夸装,实际上并不只是巴航代码,加上前面的变量声明之类的一共有40多行的样子吧,好像是在知乎上看到的,现在有时间再把它写下来: 其中用到了一些c++11特性,例如lambda 以及给予范围的 for循环。 其他的没什么好说的,看代码,上面也有注释的。 1 #include 2 #in... 阅读全文