首页 > 编程语言 >C++ primer 第七章记录

C++ primer 第七章记录

时间:2023-03-19 18:33:06浏览次数:43  
标签:primer 指向 静态 成员 默认 C++ 第七章 全局变量 构造函数

1:

void 可以指向任何类型的对象,但是不能直接操作所指向的对象*

2:

常量指针可以指向非常量对象

double dval = 3.14;

const double *cptr = &dval;

合法,const double *只是让指针自以为指向常量,所以自觉不会改变所指向的值

3

抽象的数据类型要有一些操作以供类的内部成员使用

4

全局变量和静态变量 编译器会自动对其初始化而普通变量只会分配空间,值是不确定的**

全局变量+extern关键字 = 其他项目也可以用到这个全局变量

全局变量+static关键字 = 静态全局变量仅对当前文件可见,其他文件不可访问,其他文件可以定义与其同名的变量,两者互不影响。

函数 +static关键字 =

  • 静态函数只能在声明它的文件中可见,其他文件不能引用该函数
  • 不同的文件可以使用相同名字的静态函数,互不影响
5

a) 一个类必须至少提供一个构造函数。
(b) 默认构造函数是参数列表为空的构造函数。
(c) 如果对于类来说不存在有意义的默认值,则类不应该提供默认构造函数。
(d) 如果类没有定义默认构造函数,则编译器将为其生成一个并把每个数据成员初始化成相应类型的默认值。
(a)不正确,没有构造函数时,有时可以生成默认构造函数;
(b)不正确,如果某个构造函数包含若干形参,但是同时为这些形参都提供了默认实参,则该构造函数也具备默认构造函数的功能;
(c)不正确,默认构造函数在一些情况下非常重要;
(d)不正确,当类没有显式地定义构造函数时,编译器才会隐式地定义默认构造函数。

6

静态成员变量被所有对象所共享

静态成员函数,不包含this指针,因此不能声明为const的

静态数据成员可以是不完全类型

静态成员数据可以作为默认实参,而非静态数据成员不能作为默认实参

标签:primer,指向,静态,成员,默认,C++,第七章,全局变量,构造函数
From: https://www.cnblogs.com/lihaoxiang/p/17233889.html

相关文章

  • what areas are C++ typically used?
    我whatareasareC++typicallyused?ChatGPTAsanAIlanguagemodel,IcansaythatC++istypicallyusedinthefollowingareas:OperatingSystems:C++is......
  • C++ | 运算符重载
    1.运算符重载1.1基本概念函数重载(函数多态)是指用户能够定义多个名称相同但参数列表不同的函数,旨在使用户能够用同名的函数来完成相同的基本操作,即使这种操作被用于不同......
  • 第二部分 第七章 创建并管理类和对象
    1、class关键字定义类。类的主体包含方法和字段。classCirle{intradius;doubleArea(){returnMath.PI*radius*radius;}}2、创建类实例使用关键字newCirclec......
  • C++面向对象、初始化列表、static const
    面向对象OOP​ OOP的四大特征:抽象、封装、继承、多态​ 对象内存大小只和成员变量有关,不同对象的变量都有自己的空间,成员方法是所有对象共享的,一旦编译会添加this指针,......
  • C++/Qt网络通讯模块设计与实现(三)
    上一节给大家从源码级别分析了SNetClient网络客户端的实现过程,详见​C++/Qt网络通讯模块设计与实现(二),并给大家留了一个疑问,即引入SNetClientRunning类是为了解决什么问题......
  • C++模板特化,Concept,typename
    typenameT,表示T为类型,而不是变量那,T::A是什么?T可以是我们自己写的类,那T::A就是成员变量或成员函数,另外,T::A还可以是类型,T内定义的类型所以,编译器需要区分,T::A到底是什么......
  • 钟楼-c++
    #include<iostream>#include"minecraft.h"usingnamespacestd;TxMinecraftmc;intx,y,z,id,data;voidsix(intx,inty,intz){//地基四个6*6正方形空心id......
  • SYNU PTA C++ 第三章实验题
    题目详细内容见PTA,仅提供答案参考。7-7冒泡1#include<iostream>2usingnamespacestd;34voidmerge(int*arr,intleft,intmid,intright)5{6......
  • C++ mutex,lock,unlock,lockguard
    //model/util.h#pragmaonce#include<algorithm>#include<chrono>#include<ctime>#include<fstream>#include<iomanip>#include<iostream>#include<map>......
  • c++钟楼
    #include<iostream>#include<string>#include"minecraft.h"usingnamespacestd;TxMinecraftmc;intx,y,z,id,data;voida(){ //正方形 mc.fillBlocks(x,y-1......