零基础学 C++、VC++开发,观看地址http://edu.ibeifeng.com/view-index-id-523.html零基础学C#基础语法快速开发 观看地址http://edu.ibeifeng.com/view-index-id-527.html零基础学C++游戏开发从入门到精通 观看地址http://edu.ibeifeng.com/view-index-id-528.html零基础学C++语言开发,轻松入门 观看地址http://edu.ibeifeng.com/view-index-id-529.html零基础学C语言之嵌入式开发从入门到精通 观看地址http://edu.ibeifeng.com/v...
静态成员函数
静态成员函数
在上一节关于静态成员变量的课程中,您了解到静态成员变量是属于该类的成员变量,而不是该类的对象。如果静态成员变量是公共的,我们可以使用类名和域名解析运算符直接访问它们。但是如果静态成员变量是私有的呢?请考虑以下示例:
class Something
{
private:static int s_value;};int Something::s_value = 1; // 初始化程序,即使s_value是私有的,这也没关系,因为它是一个定义
int main()
{// 我们...
1.输入输出流输入是指字节流从输入设备流向内存,输出是指字节流从内存流向输出设备。标准文件是指标准输入文件键盘和标准输出文件显示屏幕。cin是istream类的对象,用来处理键盘输入;cout是ostream类的对象,用来处理屏幕输出;cerr是ostream类的对象,用来处理错误信息的输出,提供不带缓冲区的屏幕输出;clog是ostream类的对象,用来处理输出信息,提供打印机输出;#include<iostream>
#include<string>
using namespace std;v...
重载比较运算符
重载比较运算符相对简单,因为它们遵循我们在重载其他运算符时看到的相同模式。
因为比较运算符都是不修改左操作数的二元运算符,所以我们将使重载的比较运算符声明为友元函数。
这是一个带有重载运算符==和operator!=的Car类的示例。
#include <iostream>
#include <string>class Car
{
private:std::string m_make;std::string m_model;public:Car(std::string make, std::string model): m_make(make), m_model...
C/C++ 数组允许定义可存储相同类型数据项的变量,但是结构是 C++ 中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。
结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性:
Title :标题 Author :作者 Subject :类目 Book ID :书的 ID 定义结构 为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:
str...
目录1 什么是C++多线程?2 C++多线程基础知识2.1 创建线程2.2 互斥量使用lock()与unlock():lock_guard():unique_lock:condition_variable:2.3 异步线程async与future:实例生产者消费者问题4 C++多线程高级知识5 延伸拓展
1 什么是C++多线程?
线程:线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,进程包含一个或者多个线程。进程可以理解为完成一件事的完整解决方案,而线程可以理解为这个解决方案中的的一个步...
1.选择语句形如:if() else if() else 其中else if和else的个数可以为0个#include <iostream>
using namespace std;void main(){int a;cout << "Please input a number!" << endl;cin >> a;if (a == 1){cout << "Input is one" << endl;}else if (a == 2){cout << "Input is two" << endl;}else{cout << "Input is unknown." << endl;}
}2.开关语句形如:switch(整形表达式) {case (整形表达式1): 语句1;...default: 语句N} 其...
继承和访问说明符
在本章前面的课程中,您已经了解了基本继承的工作原理。在我们到目前为止的所有示例中,我们都使用了公共继承。也就是说,我们的派生类公开继承基类。
在本课中,我们将详细介绍公共继承,以及另外两种继承(私有和受保护)。我们还将探索不同类型的继承如何与访问说明符交互以允许或限制对成员的访问。
到目前为止,您已经看到了私有和公共访问说明符,它们决定了谁可以访问类的成员。作为一个快速复习,公共成员...
综合测验
在本章中,我们了解了两个对象之间的一些不同类型的关系。
Summary
从较简单的对象构建复杂对象的过程称为对象组合。对象组合有两种类型:组合和聚合。
当类的成员与类具有部分关系时,就存在组合。在组合关系中,类管理成员的存在。要符合写作要求,对象和部件必须具有以下关系:
部件(成员)是对象(类)的一部分
部件(成员)一次只能属于一个对象(类)
部分(成员)的存在由对象(类)管理
部分(成员)不知道对象(...
重载下标运算符
使用数组时,我们通常使用下标运算符([])来索引数组的特定元素:
myArray[0] = 7; // 将值7放在数组的第一个元素中但是,请考虑以下IntList类,该类具有作为数组的成员变量:
class IntList
{
private:int m_list[10];
};int main()
{IntList list;// 从m_list我们如何访问元素?return 0;
}因为m_list成员变量是private,所以我们无法直接从变量列表中访问它。这意味着我们无法直接获取或设置m_list数组中的值。那...
非静态成员初始化
在编写具有多个构造函数的类(大多数构造函数)时,必须为每个构造函数中的所有成员指定默认值会导致冗余代码。如果更新成员的默认值,则需要触摸每个构造函数。
从C ++ 11开始,可以直接为普通类成员变量(不使用static关键字的变量)提供默认初始化值:
class Rectangle
{
private:double m_length = 1.0; // m_length 的默认值是1.0double m_width = 1.0; // m_width 的默认值是1.0public:Rectangle(){//此构造...
第二章2,3,4,5题(博主用vc++6.0写的,测试可用,代码没有优化,只是实现了功能,懒~~):
链接:https://pan.baidu.com/s/1rbgXUhUbfyFGqGvCEe4a8g
提取码:pljf
第三章2,3,4,5,8,9题:
链接:https://pan.baidu.com/s/1iya3LOk2DXHwWrFjgVtm1A
提取码:7b4t
有用的话留个赞呗~^_^