【C++学习笔记】教程文章相关的互联网学习教程文章

C++学习笔记2

1. C++ 没有明确定义如何释放指向不是用new 分配的内存地址的指针。下面提供了一些安全的和不安全的delete expressions 表达式。 int i; 242int *pi = &i;string str ="dwarves";double *pd = newdouble(33);delete str; // error: str is not a dynamic objectdelete pi; // error: pi refers to a localdelete pd; // ok2. 零值指针的删除 如果指针的值为0,则在其上做delete 操作是合法的,但...

设计模式C++学习笔记之五(Factory Method工厂方法模式)【代码】【图】

工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。 核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系 统在不修改具体工厂角色的情况下引进新的产品。这个例子更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com。贴代码了。5.1.解释main(),女娲IHuman,产品接口CYellowHuman...

C++学习笔记【代码】【图】

一:关键字  在C语言中,我们已经学习过了很多的关键字,例如:static,struct等,下面展现一下C++中的一些关键字。二:命名空间  在C/C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污 染,namespace关键字的出现就是针对这种问题的  定义:需要使用到 namespace 关键字,后面跟命名空间...

[第二章]c++学习笔记1(类和对象的基础2)【图】

类的成员函数可和类的定义分开写 类成员的可访问范围(private,public,protected) 具体使用方法 使用例原文:https://www.cnblogs.com/lamia76/p/12293519.html

getline()与get()(c++学习笔记)

istream中的类(如cin)提供了一些面向行的类成员函数:getline()和get()1.getline()函数读取整行,使用回车键输入的换行符来确定输入结尾。调用方法:cin.getline(参数1,参数2)该函数有两个参数,第一个参数是用来存储输入行的数组的名称,第二个参数是要读取的字符数,如果这个参数为20,则函数最多读取19个字符,余下的空间用于存储自动在结尾处添加的空字符。getline()成员函数在读取指定数目的字符或遇到换行符时停止读取。它...

C++学习笔记之数据类型

一、变量名几条简单的C++命名规则:在名称中只能使用字母,数字和下划线名称的第一个字符不能是数字区分大小写不能将C++关键字用作名称以两个下划线和大写字母打头的名称被保留给实现(编译器及其使用资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符。C++对名称长度没有限制二、数据类型计算机内存的最基本单元是位(bit)。字节(byte)通常指的是8位内存单元,可以表示的范围0-255或者-128到127。(1)整型shor...

《Effective C++》学习笔记——条款19

***************************************转载请注明出处:http://blog.csdn.net/lttree********************************************四、Designs and DeclarationsRule 19:Treat class design as type design规则 19:设计class犹如设计typeC++就像在其他OOP(面向对象编程)语言一样,当你定义一个新的class,也就定义了一个新type。作为一个C++程序员,你的许多时间主要用来扩展你的类。也就意味着,你不仅仅是个class设计者,...

c++学习笔记(四)- 多线程 枚举 cmake【代码】

c++ 枚举用到了c++11规范里的多线程,然后编译的时候就报错了,中午各种改CMakeLists没搞定,下午师弟介绍文档,cmake practice,参考第七章,搞定了。只需要CMakeLists.txt里添加一句话:set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-std=c++11 -pthread")开始的时候没有-pthread能make,但运行的时候就崩溃了,参考这里解决。根据讨论,桌面Linux环境这样就行了,如果是嵌入式交叉编译环境的话,还需要显示添加find_package (Threa...

Effective C++学习笔记(Part Two:Item 5-12)

??最近终于把effectvie C++仔细的阅读了一边,很惊叹C++的威力与魅力。最近会把最近的读书心得与读书笔记记于此,必备查找使用,如果总结有什么不当之处,欢迎批评指正:现在只列出框架,最近会尽快填充完整:第2部分:构造/析构/赋值运算 个人认为这是C++的比较难理解的地方,也是C++的深邃所在,刚开始阅读时,可能在某些地方不理解,最好的方式是边读边编程实现,用心去思考其精髓所在!条款5:了解C++默默编写并调用那些函数条款...

C++学习笔记(二)之数组【代码】

数组作形参时,实际传入数组首地址1void print(constint*) 2void print(constint []) 3void print(constint[10])三种方法等价原文:http://www.cnblogs.com/mokero/p/6645445.html

原型模式和Effective C++学习笔记

原型模式(Prototype):用原型实例制定创建对象的种类,并且听过拷贝这些原型创建新的对象。浅复制:如果字段是值类型的,则对该字段执行逐位复制,如果字段是引用类型,则复制引用但不复制引用的对象;因此,原始对象及其副本引用同一对象。深复制:把引用变量的对象指向复制过的新对象,而不是原有的被引用的对象。Effective C++:1:在资源管理类中提供对原始资源的访问。(1),APIs 往往要求访问原始资源(raw resources),所...

C++学习笔记32:泛型编程拓展1

标准模板库的内容标准模板类:复数、序偶迭代器标准容器:向量,表,栈,队列,集合,映射等标准算法:查找,排序等标准模板库型式的使用方法“<>”:模板名称<数据对象基型式>数据对象名称;例子1:complex<double>a(1.0,2.0);例子2:pair<string,string>name("zhang","san");(序偶)例子3:vector<int>v(8); 复数一般说明头文件:“complex”模板名:complex<>基型式:float,double,long double首选double,float精度低,long doub...

C++学习笔记(十六):友元【代码】

问题的提出:我们已知道类具备封装和信息隐 藏的特性。只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的。非成员函数能够访问类中的公有成员,但是假如将数据成员都定义 为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开 销,而影响程式的运行效率。友元是一种定义在类外部的普通函数,但他需要在类...

吴裕雄--天生自然C++语言学习笔记:C++ 类 & 对象【代码】

C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。 类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。 键字 class 定义 Box 数据类型,如下所示: class Bo...

c++学习笔记——构造函数

构造函数定义:每个类都分别定义了它的对象被初始化的方式,类通过一个或几个特殊的成员函数来控制其对象的初始化过程,这些函数叫做构造函数。需要注意的几点:1:构造函数不能被声明为const的,当我们创建一个const对象时,直到构造函数完成初始化过程,对象才能真正取得其“常量”属性。因此构造函数在const对象的构造过程中可以向其写值。2:只有类中没有声明任何构造函数时,编译器才会自动地生成默认构造函数。(依据:如果一...

学习笔记 - 相关标签