c/c++
文章平均质量分 63
稀奇古怪de
小白一枚。所发博客都是自己学习前进的笔记备份。大多都来自网上或者各类书籍整合而成
展开
-
07 const
Person p1("fred", 20);const Person *p = &p1; // 指针p指向的是const person类的对象,该对象不能修改,但指针可指向其他的person对象Person const *p = &p1; // 和上面一致的意思,只是不同的写法Person *const p = &p1; // p指针是一个const指针,指向Person对象,该指针只能指向p1, 不能指向其他对象,但p1对象可修改 区别的标准是 在*号的前面还.原创 2022-03-09 23:39:28 · 637 阅读 · 0 评论 -
05 继承
继承 inheritance类继承类#include <iostream>using namespace std;class A{public: A(int ii):i(ii) {cout << "A::A()" << endl; } // 列表初始化 ~A() {cout << "A:~A()" << endl; } void print() { cout << "A::f()" << i原创 2022-03-09 23:37:41 · 195 阅读 · 0 评论 -
04 初始化列表
初始化列表 initialize list在构造函数的括号后面加上 : 然后写上成员变量的名字,在括号里给出成员变量的初始值A():p(0){ cout << "A::A()" << endl; } // 初始化列表这个操作会早于构造函数的执行#include<iostream>using namespace std;struct A{ int i; int *p;public: // A(){ p=0; cout <<原创 2022-03-09 23:36:15 · 117 阅读 · 0 评论 -
03 访问限制
访问限制privatepublic、private 成员函数才能访问 、protected 只能子类去调用,子类的对象不能调用。private是对类来说的 不是对对象的。同一个类的对象之间是可以互相访问的私有成员变量仅仅在编译阶段进行限制。#include<iostream>using namespace std;class A {private: int i; int *p;public: A() { p=0; cout << "A::A()原创 2022-03-09 23:35:36 · 88 阅读 · 0 评论 -
02 构造和析构
构造函数和析构函数没有调用初始化的内存 为 0xcd 而两个0xcd 连续出现就是 中文字符 烫 (debug 模式下)从网上总结了一下地址的信息,最主要的是:0xCDCDCDCD 堆上分配的地址,但是没有初始化0xDDDDDDDD 堆上释放的地址。0xFDFDFDFD 堆内存的边界0xCCCCCCCC 栈上分配的内存,但是没有初始化构造函数 constructor 没有返回类型class Y{public: Y();};// 构造函数可以有参数class Y{publ原创 2022-03-09 23:34:59 · 192 阅读 · 0 评论 -
08 引用
引用必须是可以被赋值的东西,不可以是常量char c;char *p = &c;char &r = c; // 引用一般的引用都需在定义的时候给他一个初始值,初始值必须是一个变量,或是一个可赋值的东西r是c的一个别名。int x = 47;int &y = x;// 引用// x and y now refer to the same variablecout << "y = " << y; // 47y = 18; // 是对引用的变量原创 2022-03-09 23:41:15 · 98 阅读 · 0 评论 -
06 内联函数
overhead of function callpush parameterpush return addressprepare return valuespop all pushed内联函数inline, 省去了overhead的时间,是一种以空间换取时间的策略当调用内联函数时,只是将函数代码嵌入到调用的地方。其他的检查参数步骤都存在。inline需要在 .h和.cpp 处重复出现。(.h 是给调用该函数的地方看的,而.cpp 是给编译器看的)// a.hinline void f原创 2022-03-09 23:38:11 · 100 阅读 · 0 评论 -
01 面向对象
面向对象基本原理 相关英文object is variable in programming languages ------ 对象在编程语言中是一种变量对象发送和接受消息message arecomposed by the sender // composed:创作interpreted by the receiver // interpreted:理解implemented by the methods // implemented:执行sender 发生命令接受者自己决定 执行或原创 2022-03-09 23:33:41 · 119 阅读 · 0 评论 -
c++ 引用和指针的区别
指针是一个变量,存储的是一个地址,指向内存的一个存储单元;引用是原变量的一个别名,跟原来的变量实质上是同一个东西。引用是对指针的封装,引用的底层实现是以指针的方式实现的int a = 996;int *p = &a; // p是指针, &在此是求地址运算int &r = a; // r是引用, &在此起标识作用。引用 r,是 a 的一个别名,!!在内存中 r 和 a 占有同一个存储单元!!。指针可以有多级,引用只能是一级引用必须在定义的时候初始化原创 2021-08-19 13:46:29 · 190 阅读 · 0 评论