【Mudo C++网络库第三章学习笔记】教程文章相关的互联网学习教程文章

Effective C++ 学习笔记 《十》【代码】【图】

Item 10: Have assignment operators return a reference to *this 其实这一点对于有一定编程经验的人都是熟稔于心,就是在类重载赋值运算符的函数返回类型应该写成类的引用类型,对应的return语句也应该写成return *this; 书上说这只是个协议,没有进行深入的解析,我倒是想在这里做一点深入。 首先 我们都应该知道c++的值返回类型函数和引用返回类型函数的区别,来看个例子就能明白 int func() {return 1; } int i = func();对于...

C++ 基础学习笔记

c++中的左值与右值左值与右值这两概念是从 c 中传承而来的,在 c 中,左值指的是既能够出现在等号左边也能出现在等号右边的变量(或表达式),右值指的则是只能出现在等号右边的变量(或表达式).

QT学习笔记(c++ GUI编程)find对话框【图】

find对话框是c++ GUI QT4编程里的内容,之前已经手敲了一遍, 现在准备加深理解。 1.需要的窗口部件 以Dialog为主窗口,需要按钮,复选框,标签,先对这先需要使用的部件进行声明#include<QDialog> class QPushButton; class QLabel; class QCheckBox; class QLineEdit;//单行文本编辑框 2.创建find窗口的类class Find { public:Find(QWidget * parent=0);//构造函数,表示默认Find是一个父窗口~Find();//析构函数 private:QPushBu...

C++ Primer 5th学习笔记14 面向对象程序设计【代码】

文章目录面向对象程序设计1 OOP概述2 定义基类和派生类2.1 定义基类2.2 定义派生类2.3 类型转换与继承3 虚函数4 抽象基类5 访问控制与继承6 继承中类作用域7 构造函数与拷贝控制7.1 虚析构函数7.2 合成拷贝控制与继承7.3 派生类的拷贝控制成员7.4 继承的构造函数8 容器与继承 面向对象程序设计 1 OOP概述 ??面向对象程序设计的核心思想是数据抽象,继承和动态绑定。通过使用数据抽象,可以将类的接口与实现分离;使用继承定义相似的...

C++学习笔记2——A Better C【代码】

C++学习笔记2A Better C引用定义引用与指针的区别引用作为函数参数引用作为函数返回值命名空间Overloading函数签名参数列表默认参数 A Better C 引用 引用是更安全的指针。他类似于变量的一个别名。 定义 int a = 3; int &b = a;引用与指针的区别引用不能为空 创建引用时就需要赋值 引用不能更改 一旦创建,不能指向其他对象这样,就解决了野指针等问题。因此引用被称为更安全的指针。 引用作为函数参数 我们经常将指针作为函数参数...

c/c++学习笔记

c/c++常见预处理命令: 1.#空指令 2.#include包含一个源代码文件 3.#define定义宏 4.#undef取消已定义宏 5.#if如果给定条件为真,则编译下面代码 #else或#elif endif 6.#ifdef如果宏已经定义,则编译下面代码或 #ifndef #else #endif 7.#error停止编译并显示错误信息 ifndef 是if not define的缩写,一种宏定义。 c语言编译系统包括预处理,编译和链接等部分。 #ifndef x //先测试是否被宏定义过 #defi...

C++学习笔记(2)

标准库类型 ---using用法:using namespace std;或者 using std::cin;。注意一般不要在头文件中使用using,否则所有引用该头文件的 string类型用法 ---getline(cin,line)可以读取一行字符串,读取的字符串赋给line。 ----str.size()返回的数据类型是size_type类型,不用int是因为有时候int所能表示的数太小 ----< > =三种符号及其组合可以直接用于比较字符串大小,大小比较的策略:(1)短的字符串是长的字符串的一部分,则短的字符串...

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

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

C++学习笔记-virtual method

C++学习笔记-virtual method 虚函数或虚方法(virtual method)在CPP13章第3节首次提到。在通过引用或指针而不是直接用对象调用方法时,如果基类的方法没有使用关键词 virtual ,程序将根据引用类型或指针类型选择方法;如果使用了virtual,程序将根据引用或指针指向的对象类型来选择方法。通俗来讲,如果要在派生类中重新定义基类方法的话,最好在基类中定义为虚方法。析构函数一般也定义成虚方法。不然使用指针或引用时可能会错误地...

C++学习笔记2:指针

2.1 指针强化 强化1:指针是一种数据类型 1)指针变量也是一种变量,占有内存空间,用来保存内存地址 测试指针变量占有内存空间大小。 2)*p操作内存 在指针声明时,* 号表示所声明的变量为指针 在指针使用时,* 号表示操作指针所指向的内存空间中的值 *p相当于通过地址(p变量的值)找到一块内存,然后操作内存 *p放在等号的左边赋值(给内存赋值,写内存) *p放在等号的右边取值(从内存获取值,读内存) 3)指针变量和它指向的内...

C++中的ravalue学习笔记【代码】

一、学习笔记 1. A a = 42; 会先以42为参数构造一个A类对象,然后调用拷贝构造函数来构造a,目前编译器优化掉了拷贝构造函数的调用,测试拷贝构造函数是没有被调用的,但是其权限不能为private的,即使提供了重载的拷贝构造函数(其它没有调用到的构造函数可以被设置为private的) 2. 打印出下面两个地址相同,编译器优化过了B get() {B b1(1);cout << &b1 << endl; //地址1return b1; }int main() {B b = get();cout << &b << endl; ...

C++学习笔记:C++ 多线程编程总结【代码】

在开发C++程序时,一般在吞吐量、并发、实时性上有较高的要求。设计C++程序时,总结起来可以从如下几点提高效率: ● l 并发 ● l 异步 ● l 缓存 下面将我平常工作中遇到一些问题例举一二,其设计思想无非以上三点。 1、任务队列 1.1 以生产者-消费者模型设计任务队列 生产者-消费者模型是人们非常熟悉的模型,比如在某个服务器程序中,当User数据被逻辑模块修改后,就产生一个更新数据库的任务(produce),投递给IO模块任务队列...

C/C++学习笔记(四)——参数传递【代码】

参数传递 每次函数调用时都会重新创建它的形参,并传入实参对形参初始化。如果形参是引用类型,它将绑定到对应的实参上;否则将实参的值拷贝给形参。 传值参数 将实参的值拷贝赋给形参,函数对形参的操作不影响实参。类似: int n = 10; int i = n; i = 42; //形参类似 i,实参类似 n;对 i 的操作不影响 n 的值指针形参,也是将实参的值拷贝赋给形参,形参指针与实参是两个指针,由于指针的值是地址,所以指向的是同一个地址。 传...

C++学习笔记:类的类型转换【代码】

C++ Primer第五版P535页有这样一段话:在对象之间不存在类型转换。派生类向向基类的自动类型转换只对指针或引用类型有效,在派生类类型和基类类型之间不存在这种转换。 #include<iostream> #include<stdlib.h> #include<typeinfo.h> using namespace std; class animal { public:void eat(){cout<<"animal eat"<<endl;}void sleep(){cout<<"animal sleep"<<endl;}void breath(){cout<<"animal breath"<<endl;} }; class fish:publi...

C++学习笔记第十一篇

101.类模板可以被局部特化,可以指定类模板的特定实现,并要求某些类型参数仍然必须由模板的用户指定。 102.为什么需要特化,而不重新定义新类: (1)特化和重新定义新类看上去没有本质区别,但是如果定义新类,那么将变成一个类模板和一个新类,使用的时候需要考虑究竟是用类模板还是用新类。 (2)特化可以以统一的方式使用类模板和特化类,编译器自动优先选择特化类。 103.非类型模板参数的限制: (1)变量不能作为模板参数。 (2)浮...