![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
侯捷c++课堂笔记
未落之秋
这个作者很懒,什么都没留下…
展开
-
侯捷C++第十课 扩展补充
进一步补充: static 关键字使用——放置于声明的变量类型前,如static int a; 与一般变量的区别——没有this point;静态函数只能处理静态数据。 对于class内部的声明的静态数据,在class外一定要做声明、为其赋予初值;如double ClassName::m_rate = 8.0;。 对于静态函数的调用: 1.未声明静态变量时,通过class name调用,如ClassName::set_rate(5.0); 2.已声明静态变量时,通过object调用,如ClassNamea;原创 2021-01-28 13:01:19 · 86 阅读 · 0 评论 -
侯捷C++第九课String类实现的复习
1.类名称选定,数据设计,函数设计 class String { public: String(const char* cstr = 0);//考虑到使用者经常创建不带初值的变量,为其赋予默认初值 String(const String& str); String& operator = (const String& str); ~String(); char* get_c_str() const { return m_data; } private: char* m_d原创 2021-01-23 19:08:50 · 111 阅读 · 0 评论 -
侯捷c++第八课 堆,栈与内存管理
栈:存在于某作用域(例如大括号内)的一块内存空间。通常,函数本体内声明的任何变量其内存块都取自栈。 堆:由操作系统提供的一块全局内存空间,需要用动态分配(new)取得空间。原创 2021-01-21 19:39:44 · 89 阅读 · 0 评论 -
侯捷c++第七课 三大函数
编译器虽然给出了默认的拷贝函数,但其与带指针的class不相兼容(它只是拷贝指针的地址,新拷贝的内容本身还是依赖于旧内容的),在编写带有指针的class时,需要自己编写拷贝函数。 构造函数与析构函数 inline String::String(const char* cstr =0 ) { if(cstr) { m_data = new char[strlen(cstr)+1]; strcpy(m_data, cstr); } else { //未指定初值 m_data = new cha原创 2021-01-19 18:46:48 · 114 阅读 · 1 评论 -
侯捷C++第六课 complex类实现过程的复习
**1.对于写在头文件中的代码,需要有防卫式定义,**代码如下: #ifndef __你的头文件名__ #define __你的头文件名__ //中间为你要的写入的代码 #endif 2.写出class的body 设计class的数据,并放在private中。 设计class的函数,并放在public中。 #ifndef __你的头文件名__ #define __你的头文件名__ class complex { public: private: double re,im; }; #end原创 2021-01-18 11:40:53 · 162 阅读 · 0 评论 -
侯捷C++ 第五课操作符重载与临时对象
inline complex //注意!此处不设置为返回引用,由于函数内部基于新对象进行操作 operator + (const complex& x,const complex& y) { return complex(real(x) + real(y), imag(x) + imag(y)); } inline complex operator + (const complex& x,double y) { return complex(real(x) + y原创 2021-01-16 17:44:00 · 140 阅读 · 0 评论