![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++学习
Shaneman666
这个作者很懒,什么都没留下…
展开
-
C++学习(十八)——vector容器
vector功能类似于数组1、vector构造函数——创建vector容器的四种方式#include <vector>#include <iostream>#include <string>using namespace std;void print(vector<int>& v){ for(vector<int>::iterator it = v.begin();it != v.end();it++){ cou原创 2021-10-25 18:48:26 · 161 阅读 · 0 评论 -
C++学习(十七)——文件操作
要点: ifstream:input。从文件中读取数据,输入到文件流对象。 ofstream:output。文件流对象输出,写入数据到文件中, fstream:既可读取数据,也能写入数据。 文件读取必须遵循以下流程:打开文件 -> 读/写文件 -> 关闭文件。 C++中对文件操作需要包含头文件#include <fstream> 。 一、写文件1、创建流对象:ofstream ofs;2、打开文件:ofs.open("文件路径",打开方式);原创 2021-10-24 10:30:26 · 3154 阅读 · 0 评论 -
C++学习(十六)——this
要点: this指针指向C++中成员函数所作用的对象。 静态成员函数中不能使用this指针。 1、C++语言翻译成C语言C语言全局函数的参数相比较于C++成员函数要多一个形参,即this指针。图中右边C语言的this指针就是指向SetPrice()函数前面的car对象。在左边C++中,就是指向car.SetPrice()前面的car对象。左边用this指针:#include <iostream>using namespace std;class CCar{ .原创 2021-10-23 10:57:53 · 311 阅读 · 0 评论 -
C++学习(十五)——类对象作为类成员
1、初始化列表语法: 构造函数():属性1(值1),属性2(值2)... {} 2、类对象作为类成员 #include <iostream>using namespace std;class Phone{ public: string m_PhoneName; Phone(string name) { m_PhoneName = name; cout<<"Phone构造"<<endl; } ...原创 2021-10-23 10:13:44 · 246 阅读 · 0 评论 -
C++学习(十四)——静态成员
要点: 静态成员变量和函数,相当于该类的全局变量和函数。 静态成员函数中不能包含非静态变量和函数。 静态成员,实际上不放在成员内部,而是放在所有成员的外面,被所有对象共享。即静态成员只与该类相关,与其他变量和成员基本上没有关系。 静态成员不需要通过对象就能访问。 静态成员函数不具体作用到某一具体对象上。 基本概念1、静态成员 (1)在说明前面加了static关键字的成员。如下:class CRectangle{ private: int w,h; ...原创 2021-10-17 11:37:59 · 485 阅读 · 5 评论 -
C++学习(十三)——析构函数与深浅拷贝
析构函数1. 作用:对象消亡时,自动被调用,用来释放对象占用的空间.2.特点: (1) 名字与类名相同,在前面需要加上"~"。 (2)无参数,无返回值。 (3)一个类最多只有一个析构函数。 (4)不显示定义析构函数会调用缺省析构函数。C++创建对象的三种不同方式:1、Test p1(1); //栈中分配内存2、Test p2 = Test(2); //栈中分配内存,跟方法1相同,是方法1的完整模式3、...原创 2021-10-17 10:37:17 · 129 阅读 · 0 评论 -
C++学习(十二)——类型转换构造函数
要点: 适用于解决两边类型不一致的情况。 #include <iostream>using namespace std;class Complex{ public: double real,imag; Complex(int i){ cout<<"调用了类型转换构造函数"<<endl; real = i; imag = 0; } Complex(double _real,double _imag){ real = _原创 2021-10-17 09:42:32 · 183 阅读 · 0 评论 -
C++学习(十一)——拷贝构造函数
1、拷贝构造函数定义和调用class Person {public: Person() { cout<<"无参构造函数!"<<endl; } //拷贝构造函数 Person(const Person& p) { age = p.age; cout << "拷贝构造函数!" << endl; }public: int age;};int main(){ Person p1原创 2021-10-16 13:08:14 · 348 阅读 · 0 评论 -
C++学习(十)——构造函数
要点: 构造函数的目的:对象初始化 它不分配存储空间,而是在已经分配空间之后做初始化的工作。 对象生成时一定会调用构造函数。 对象一定要初始化再使用。 构造函数具有如下几个特点 1、名字与类名相同,可以有参数,但是不能有返回值(void也不行) 2、作用是对对象进行初始化工作,如给成员变量赋值等。 3、如果定义类时没有写构造函数,系统会生成一个默认的无参构造函数,默认构造函数没有参数,不做任何工作。 ...原创 2021-10-16 10:29:28 · 312 阅读 · 0 评论 -
C++学习(九)——类成员可访问范围
三种权限:公共权限 public 类内可以访问 类外可以访问保护权限 protected 类内可以访问 类外不可以访问私有权限 private 类内可以访问 类外不可以访问 要点: 缺省类型的成员为私有成员,即未明确可访问类型的变量。 类的公有成员函数内部的私有变量是可以访问到的。 类的私有成员变量只能由类的成员函数访问。原因之一:方便修改。 class Person{ //姓名 公共权限public: st...原创 2021-10-15 12:19:41 · 550 阅读 · 0 评论 -
C++学习(八)——类的一个例子
问题:写一个程序,输入矩形长和宽,输出面积和周长。class juxing{public: int w,h; //初始化 void init(int _w,int _h) { _w = w; _h = h; } //面积 int mianji() { return w*h; } //周长 int zhouchang() { retu原创 2021-10-15 12:08:24 · 84 阅读 · 0 评论 -
C++学习(七)——函数缺省参数
转载 2021-09-27 09:30:25 · 113 阅读 · 0 评论 -
C++学习(六)——函数重载
1.函数重载定义: 函数名字相同,参数类型不同。2.例子:3.调用:原创 2021-09-27 09:26:58 · 78 阅读 · 0 评论 -
C++学习(五)——动态内存分配
要点:C语言:通过malloc分配内存。C++:new关键字实现动态分配内存。 分配变量:P = new T;,其中T为任意类型名。 分配数组:P = new T[N]原创 2021-09-26 14:59:52 · 206 阅读 · 0 评论 -
C++学习(四)——const关键字和常量
const用法:1.定义常量: const int MAX_VAL= 23; const double Pi = 3.14; const char * SCHOOL = "XXXXXX";2.定义常量指针: 不可以通过常量指针修改其指向的内容,言外之意变量的内容可以修改,只是不可以通过常量指针修改。int n,m;const int *p = &n;*p = 5;//errorn = 4;//Truep =...原创 2021-09-26 14:40:04 · 146 阅读 · 0 评论 -
C++学习(三)——引用
1.定义: 类型名 &引用名 = 某变量名如:int n = 4; int &r = n;//r引用了n,r的类型是 int & 某个变量的引用,等价于这个变量,对其修改会导致原变量的变化。引用必须初始化,引用有自己的内存空间。2.C++引用示例://交换两个数的值void swap(int &a,int &b){ int t...原创 2021-09-25 10:46:16 · 90 阅读 · 0 评论 -
C++学习(二)——位运算
简写记规律就行1.与(&)都为1时,结果为1。2.或(|)都为0时,结果为0。3.异或(^)相同为0,相异为1。4.取反(~)5.左移(<<)各二进位全部左移若干位,高位丢弃,低位补0。6.右移(>>)各二进位全部右移若干位:对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0...原创 2021-09-25 10:12:28 · 90 阅读 · 0 评论 -
C++学习(一)——C语言知识函数指针
实例:用C语言中qsort库函数,将一个unsigned int数组按照个位数从小到大进行排序。1.函数指针定义:类型名( *指针变量名)(参数类型1, 参数类型2, …); 如:int (*pr)(int,char);2.调用:函数指针名(实参表) 如:pr = myFun;//把自己定义的函数赋值给pr这个函数指针 pr(x,y);//可以直接用pr调用myFun这个函数3.C语...原创 2021-09-25 09:49:07 · 128 阅读 · 0 评论