摘要:
1. New的本质当使用关键字new在堆上动态创建一个对象时,它实际上做了三件事: ①获得一块内存空间 ②调用类构造函数 ③ 返回指向地址的正确指针如果创建的是简单类型的变量,第二步就不执行了。下面我们看一段代码: 1 #include <iostream> 2 using namespace std; 3 4 class A { 5 int m_value; 6 public: 7 A(int value) :m_value(value * value){} 8 void Func(){ 9 printf("m_value=%d\n", m_v... 阅读全文
摘要:
参考同事博客:http://www.cnblogs.com/hustcser/archive/2012/10/19/2731085.html 阅读全文
摘要:
作者在本节提醒读者注意两点:1. 对于单纯的常量,最好以const对象或enum替换#define2. 对于形就似函数的宏定义,最好改用inline函数替换#define1. 对于单纯的常量,最好以const对象或enum替换#define 在阅读这一条的时候,我们要知道为什么要用const对象或enum来替换#define,要知道#define定义的常量的缺陷。首先,用#define定义的常量在预处理时,就被定义的值替换掉,也就是参与编译的内容并没有我们定义的常量名字,也就不会被计入常量表,这样发生错误的时候,我们是无法跟踪错误的源头的。但是,对于congst常量和enum的值,编译阶段或调 阅读全文
摘要:
关于本条款,作者一直在向我们强调一个观点,那就是不要把C++当做我们学过的单纯语言,而要把C++当做一个具有多个独立特性的联邦语言。1. C++由C发展而来,它兼容一切C的语法特性,因此,C++国度里的第一个联邦——C语言,即面向过程的代表语言。2. 从一开始,C++引入了面向对象的特性,即C++一开始的名称C with classes,这是C++的第二个联邦——面向对象语言。3. 接着就是C++ Template,这部分语法特性使得C++支持泛型编程,因此,这可以作为C++的第三个联邦——Template编程语言。4. 最后就是有名的STL,作为C++泛型编程的代表作,虽然在C++的语言框. 阅读全文
摘要:
1. strcat——字符串连接 1 #include <iostream> 2 using namespace std; 3 4 int main(){ 5 6 char str[15] = "abcd"; 7 char str1[] = "abc"; 8 strcat(str, str1); 9 cout<<str<<endl;10 11 system("pause");12 return 0;13 }※注意点,第一个字符串数组要足够大,否则会有越界问题。2. strcpy——字符串拷贝 1 # 阅读全文
摘要:
1. 获取输入的第一个程序 1 #include <iostream> 2 using namespace std; 3 4 int main(){ 5 6 char str[15]; 7 cin>>str; 8 cout<<str<<endl; 9 10 system("pause");11 return 0;12 }上面的程序可以获取用户的输入,但是如果用户输入如下字符串:abcd cdef输出结果不是我们想要的“abcd cdef”,而是“abcd”。这说明cin认为空格是字符串结束标志。另外,如果我们的用户输入如下字符 阅读全文