C++程序设计学习笔记(上)

2023年 10月 6日 46.5k 0

本文档依据中国MOOC程序设计与算法(三)C++面向对象程序设计撰写

第一章从C到C++

类和对象的基本概念与用法(1)

对象的内存分配:成员函数不被包括在对象的内存吗?

第二章 类和对象基础

1.类和对象的基本概念(2)

question1

//假设A是一个类的名字,下面的程序片段会调用类A的析构函数几次? 答案:3次
int main() {
A * p = new A[2];
A * p2 = new A;
A a;
delete [] p;
}

不能访问私有成员变量?

2. 构造函数

对象所占用的存储空间是不是也是构造函数分配的?

answer:对象函数是在对象已经占用存储空间以后,在对象存储空间中做初始化的操作

对象一定有构造函数,如果定义类的时候没有写构造函数,则编译器生成个默认的无参数的构造函数

  • 默认构造函数无参数,不做任何操作

构造函数在数组中的使用

class Test {
    public:
        Test( int n){}//(1)
        Test( int n, int m) {}//(2)
        Test(){}//(3)
};
Test array1[3]= { 1, Test(1,2)};//三个元素分别用(1),(2),(3)初始化
Test array2[3]= { Test(2,3), Test(1,2),1};(/三个元素分别用(2),(2), (1)初始化
Test * pArray[3]= { new Test(4), new Test(1,2)}//两个元素分别用(1),(2)初始化

对于代码中的 Test array1[3] = {1, Test(1,2)},它创建了一个名为 array1Test 类型的数组,并初始化了其中的元素。

Test(1,2) 是以参数值 12 调用 Test 类的构造函数 (2) 来创建一个临时对象。这个临时对象将被用来初始化 array1 中的第二个元素。

因此,Test(1,2) 将调用 (2) 构造函数,而不是其他的构造函数 (1)(3)

3.复制(拷贝)构造函数

一. 什么是拷贝构造函数
首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:

1.  int a = 100;  
1.  int b = a;   

而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。
下面看一个类对象拷贝的简单例子。

#include
using namespace std;

class CExample {
private:
 int a;
public:
//构造函数
 CExample(int b)
 { a = b;}

//一般函数
 void Show ()
 {
cout

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论