-
cin.getline C++读入一行字符串 整行数据
所属栏目:[语言] 日期:2022-07-05 热度:168
getline() 是 istream 类的成员函数,它有如下两个重载版本: istream getline(char* buf, int bufSize); istream getline(char* buf, int bufSize, char delim); 第一个版本从输入流中读取 bufSize-1 个字符到缓冲区 buf,或遇到 为止(哪个条件先满足就[详细]
-
C++函数重载解说
所属栏目:[语言] 日期:2022-07-04 热度:66
在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如希望交换两个变量的值,这两个变量有多种类型,可以是 int、float、char、bool 等,我们需要通过参数把变量的地址传入函数内部。在C语言中,程序员往往需要分别设计出三个不同[详细]
-
C++类的定义和对象的建设详解
所属栏目:[语言] 日期:2022-07-04 热度:93
类和对象是 C++ 的重要特性,它们使得 C++ 成为面向对象的编程语言,可以用来开发中大型项目,本节重点讲解类和对象的语法,如果你对它们的概念还不了解,请先阅读《C++类和对象到底是什么意思》。 类是创建对象的模板,一个类可以创建多个对象,每个对象[详细]
-
C++类的成员变量和成员函数细说
所属栏目:[语言] 日期:2022-07-04 热度:110
类可以看做是一种数据类型,它类似于普通的数据类型,但是又有别于普通的数据类型。类这种数据类型是一个包含成员变量和成员函数的集合。 这段代码在类体中定义了成员函数。你也可以只在类体中声明函数,而将函数定义放在类体外面,如下图所示: class Stu[详细]
-
C++类成员的询问权限以及类的封装
所属栏目:[语言] 日期:2022-07-04 热度:125
前面我们在定义类时多次使用到了 public 关键字,表示类的成员具有公开的访问权限,这节我们就来详细讲解。 C++通过 public、protected、private 三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限[详细]
-
C++构建函数详解
所属栏目:[语言] 日期:2022-07-04 热度:110
在C++中,有一种特殊的成员函数,它的名字和类名相同,没有返回值,不需要用户显式调用(用户也不能调用),而是在创建对象时自动执行。这种特殊的成员函数就是构造函数(Constructor)。 该例在 Student 类中定义了一个构造函数Student(char *, int, floa[详细]
-
C++建立函数初始化列表
所属栏目:[语言] 日期:2022-07-04 热度:103
构造函数的一项重要功能是对成员变量进行初始化,为了达到这个目的,可以在构造函数的函数体中对成员变量一一赋值,还可以采用初始化列表。 C++构造函数的初始化列表使得代码更加简洁,请看下面的例子: #include iostream using namespace std; class Stu[详细]
-
C++析构函数细聊
所属栏目:[语言] 日期:2022-07-04 热度:70
创建对象时系统会自动调用构造函数进行初始化工作,同样,销毁对象时系统也会自动调用一个函数来进行清理工作,例如释放分配的内存、关闭打开的文件等,这个函数就是析构函数。 析构函数(Destructor)也是一种特殊的成员函数,没有返回值,不需要程序员显[详细]
-
C++ this指针说明
所属栏目:[语言] 日期:2022-07-04 热度:131
this 是 C++ 中的一个关键字,也是一个 const 指针,它指向当前对象,通过它可以访问当前对象的所有成员。 所谓当前对象,是指正在使用的对象。例如对于stu.show();,stu 就是当前对象,this 就指向 stu。 运行结果: 李华的年龄是16,成绩是96.5 this 只[详细]
-
C++ static静态成员变量详聊
所属栏目:[语言] 日期:2022-07-04 热度:58
对象的内存中包含了成员变量,不同的对象占用不同的内存(已在《C++对象的内存模型》中提到),这使得不同对象的成员变量相互独立,它们的值不受其他对象的影响。例如有两个相同类型的对象 a、b,它们都有一个成员变量 m_name,那么修改 a.m_name 的值不会[详细]
-
C++ static静态成员函数剖析
所属栏目:[语言] 日期:2022-07-04 热度:107
在类中,static 除了可以声明静态成员变量,还可以声明静态成员函数。普通成员函数可以访问所有成员(包括成员变量和成员函数),静态成员函数只能访问静态成员。 编译器在编译一个普通成员函数时,会隐式地增加一个形参 this,并把当前对象的地址赋值给 t[详细]
-
C++类和对象的总结 拿去做笔记吧
所属栏目:[语言] 日期:2022-07-03 热度:181
类的成员有成员变量和成员函数两种。 成员函数之间可以互相调用,成员函数内部可以访问成员变量。 私有成员只能在类的成员函数内部访问。默认情况下,class 类的成员是私有的,struct 类的成员是公有的。 可以用对象名.成员名、引用名.成员名、对象指针-成[详细]
-
C++引用10分钟入门教程
所属栏目:[语言] 日期:2022-07-03 热度:56
我们知道,参数的传递本质上是一次赋值的过程,赋值就是对内存进行拷贝。所谓内存拷贝,是指将一块内存上的数据复制到另一块内存上。 对于像 char、bool、int、float 等基本类型的数据,它们占用的内存往往只有几个字节,对它们进行内存拷贝非常快速。而数[详细]
-
C++继承和派生简明教程
所属栏目:[语言] 日期:2022-07-03 热度:155
C++ 中的继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承类似,例如儿子继承父亲的财产。 继承(Inheritance)可以理解为一个类从另一个类获取成员变量和成员函数的过程。例如类 B 继承于类 A,那么 B 就拥有 A 的成员变量和成员函[详细]
-
C++三种继承方式
所属栏目:[语言] 日期:2022-07-03 热度:62
C++继承的一般语法为: class 派生类名:[继承方式] 基类名{ 派生类新增加的成员 }; 继承方式限定了基类成员在派生类中的访问权限,包括 public(公有的)、private(私有的)和 protected(受保护的)。此项是可选项,如果不写,默认为 private(成员变[详细]
-
C++继承时的名字遮蔽问题
所属栏目:[语言] 日期:2022-07-03 热度:197
如果派生类中的成员(包括成员变量和成员函数)和基类中的成员重名,那么就会遮蔽从基类继承过来的成员。所谓遮蔽,就是在派生类中使用该成员(包括在定义派生类时使用,也包括通过派生类对象访问该成员)时,实际上使用的是派生类新增的成员,而不是从基[详细]
-
C++ string详解 C++字符串详解
所属栏目:[语言] 日期:2022-07-03 热度:66
C++ 大大增强了对字符串的支持,除了可以使用C风格的字符串,还可以使用内置的 string 类。string 类处理起字符串来会方便很多,完全可以代替C语言中的字符数组或字符串指针。 string 是 C++ 中常用的一个类,它非常重要,我们有必要在此单独讲解一下。 使[详细]
-
C++ class和struct到底有什么区别
所属栏目:[语言] 日期:2022-07-03 热度:121
C++ 中保留了C语言的 struct 关键字,并且加以扩充。在C语言中,struct 只能包含成员变量,不能包含成员函数。而在C++中,struct 类似于 class,既可以包含成员变量,又可以包含成员函数。 C++中的 struct 和 class 基本是通用的,唯有几个细节不同: 使用[详细]
-
C++友元函数和友元类 C++ friend关键字
所属栏目:[语言] 日期:2022-07-03 热度:123
在 C++ 中,一个类中可以有 public、protected、private 三种属性的成员,通过对象可以访问 public 成员,只有本类中的函数可以访问本类的 private 成员。现在,我们来介绍一种例外情况友元(friend)。借助友元(friend),可以使得其他类中的成员函数以[详细]
-
C++ const对象 常对象
所属栏目:[语言] 日期:2022-07-03 热度:138
在 C++ 中,const 也可以用来修饰对象,称为常对象。一旦将对象定义为常对象之后,就只能调用类的 const 成员(包括 const 成员变量和 const 成员函数)了。 定义常对象的语法和定义常量的语法类似: const class object(params); class const object(para[详细]
-
C++ const成员变量和成员函数 常成员函数
所属栏目:[语言] 日期:2022-07-03 热度:118
在类中,如果你不希望某些数据被修改,可以使用const关键字加以限定。const 可以用来修饰成员变量和成员函数。 const成员变量 const 成员变量的用法和普通 const 变量的用法相似,只需要在声明时加上 const 关键字。初始化 const 成员变量只有一种方法,就[详细]
-
C++纯虚函数及抽象类详解
所属栏目:[语言] 日期:2022-07-03 热度:136
在C++中,可以将虚函数声明为纯虚函数,语法格式为: virtual 返回值类型 函数名 (函数参数) = 0; 纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上=0,表明此函数为纯虚函数。 最后的=0并不表示函数返回值为0,它只起形式上的作用,告诉编译系[详细]
-
C++ typeid运算符 取得类型信息
所属栏目:[语言] 日期:2022-07-03 热度:199
typeid 运算符用来获取一个表达式的类型信息。类型信息对于编程语言非常重要,它描述了数据的各种属性: 对于基本类型(int、float 等C++内置类型)的数据,类型信息所包含的内容比较简单,主要是指数据的类型。 对于类类型的数据(也就是对象),类型信息[详细]
-
C++基类和派生类的创建函数
所属栏目:[语言] 日期:2022-07-03 热度:91
前面我们说基类的成员函数可以被继承,可以通过派生类的对象访问,但这仅仅指的是普通的成员函数,类的构造函数不能被继承。构造函数不能被继承是有道理的,因为即使继承了,它的名字和派生类的名字也不一样,不能成为派生类的构造函数,当然更不能成为普[详细]
-
C++基类与派生类的析构函数
所属栏目:[语言] 日期:2022-07-03 热度:121
和构造函数类似,析构函数也不能被继承。与构造函数不同的是,在派生类的析构函数中不用显式地调用基类的析构函数,因为每个类只有一个析构函数,编译器知道如何选择,无需程序员干涉。 另外析构函数的执行顺序和构造函数的执行顺序也刚好相反: 创建派生[详细]