
C++学习
qq_52051345
博客转移至www.acming.net和51codefly.com
展开
-
C++ new和delete运算符
在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数。如下所示:int *p = (int*) malloc( sizeof(int) * 10 ); //分配10个int型的内存空间free(p); //释放内存在C++中,这两个函数仍然可以使用,但是C++又新增了两个关键字,new 和 delete:new 用来动态分配内存,delete 用来释放内存...原创 2019-02-15 13:50:16 · 178 阅读 · 0 评论 -
派生类的析构函数
#include<iostream>using namespace std;class Clock{private: int H; int M; int S;public: Clock() { cout<<"Clock's Constructor Called!"<<endl; } ...原创 2019-02-16 13:31:52 · 766 阅读 · 0 评论 -
虚基类
虚基类:在多继承关系中,如果一个派生类的从两个父类那里继承过来,并且这两个父类又恰恰是从一个基类那里继承而来。下面是一个例子:#include <iostream>using namespace std;class Grandfather{public: int key;public: };class Father1:public Grandfather...原创 2019-02-16 13:48:03 · 474 阅读 · 0 评论 -
多态性概述
多态性是面向对象程序设计的重要特性之一,从字面意思上可以简单理解就是:多种形态,多个样子。其实本质意思也是这样,在面向对象程序设计中,指同样的方法被不同对象执行时会有不同的执行效果。在具体来说,多态的实现又可以分为两种:编译时多态和运行时的多态。前者是编译的时候就确定了具体的操作过程。后者呢是在程序运行过程中才确定的操作过程。这种确定操作过程的就是联编,也称为绑定。联编在编译和连接时确认的,叫...原创 2019-02-16 13:57:16 · 321 阅读 · 0 评论 -
简单应用string类
#include&lt;iostream&gt;#include&lt;string&gt;using namespace std;int main(){ string str;//定义 str = "Hello World!";//初始化 string str1; str1 = "World"; char another = 'C'原创 2019-02-13 15:55:20 · 120 阅读 · 0 评论 -
常用运算符优先级
原创 2019-02-13 16:02:41 · 151 阅读 · 0 评论 -
重载构造函数和复制构造函数
1.重载构造函数class Baby{ public: Baby()//默认构造函数 Baby(int age);//重载构造函数 ~Baby();//析构函数 private: int baby_age;//成员变量私有 };Baby bb1;//调用默认构造函数Baby() Baby bb2(1);//调用带参构造函数Baby(int age) 2.复制...原创 2019-02-13 17:12:12 · 548 阅读 · 0 评论 -
常用io流类库操纵符
原创 2019-03-06 17:44:23 · 428 阅读 · 1 评论 -
const指针
int a;const int *p1 = &a;//p1是指向常量的指针int b;p1 = &b;//正确,p1本身的值可以改变*p1 = 1;//编译出错,不能通过p1改变所指对象int a;int *const p2 = &a;p2 = &b;//错误,p2是指针常量,值不能改变...原创 2019-04-05 17:48:22 · 387 阅读 · 0 评论 -
三种继承方式
公有继承保护继承私有继承访问位置类内类外类内类外类内类外公有成员可以可以可以不可以可以不可以保护成员可以不可以可以不可以可以不可以私有成员不可以不可以不可以不可以不可以不可以...原创 2019-02-16 13:25:07 · 303 阅读 · 0 评论 -
派生类的构造函数
由于派生类包含基类的原因,我们在创建一个派生类的时候,系统会先创建一个基类。需要注意的是,派生类会吸纳基类的全部成员,但并不包括构造函数及后面讲的析构函数,那么就意味着创建派生类在调用自己的构造函数之前,会先调用基类的构造函数。这里一点我们可以通过代码验证:#include<iostream>using namespace std;class Clock{private:...原创 2019-02-16 13:15:06 · 180 阅读 · 0 评论 -
继承和派生
继承和派生有什么好处呢?为什么C++要有这种机制呢?1.体现面向对象的编程思想,更好的表达各类型之间的关系。2.派生类除了可以继承基类的全部信息外,还可以添加自己的那些不同的、有差异的信息,就像生物进化的道理一样,派生类在拥有基类的全部基础之上还将更强大。3.派生类继承到基类的成员是自动、隐藏的拥有,即不需要我们重新定义,这就节省了大量的代码,体现了代码重用的软件工程思想。下面,我们来看实...原创 2019-02-15 19:13:12 · 312 阅读 · 0 评论 -
函数调用传参内联重载模板
1.带默认形参值的函数#include<iostream>using namespace std;int add(int a=3,int b=5){ return a+b;}int main(){ cout<<add(10,20)<<endl;//将10和20分别给a和b cout<<add(30)<<...原创 2019-02-15 14:40:33 · 157 阅读 · 0 评论 -
类和对象
1.类的定义用class类定义,比如下面定义一个C++的类,学生类:class Student{public: int num; char name[100]; int score; int print() { cout<<num<<" "<<name<<" "<<s原创 2019-02-15 15:04:13 · 254 阅读 · 0 评论 -
构造函数与析构函数
1.构造函数C++中有这么一种特殊的函数,它在类里,与类名同名,且没有返回值的一个函数,只要我们定义一个类的对象,系统就会自动调用它,进行专门的初始化对象用,而大多数情况下,因为我们没有定义构造函数,系统会默认生成一个默认形式、隐藏着的构造函数,这个构造函数的函数体是空着的,因此不具有任何功能。那么下来,我们将教大家如何定义自己的构造函数,需要用户自行定义了至少一个构造函数,系统就不在自动生成...原创 2019-02-15 15:40:52 · 217 阅读 · 0 评论 -
拷贝构造函数
在C++中,与类名同名,且形参是本类对象的引用类型的函数,叫做拷贝构造函数(Copy Constrctor),与构造函数一样,当我们不主动定义的时候,系统也会自动生成一个,进行两个对象成员之间对应的简单赋值,用来初始化一个对象,如如下的情形:#include<iostream>using namespace std;#define PI 3.1415class Circle{...原创 2019-02-15 16:26:39 · 210 阅读 · 0 评论 -
浅拷贝与深拷贝
#include<iostream>#include<Cstring>using namespace std;#define PI 3.1415class Circle{ private: double R; char *str; public: Circle(double R,char *str); ~Circle...原创 2019-02-15 16:48:12 · 126 阅读 · 0 评论 -
this指针
比如,我们来看一个时钟类的一个成员函数,用来设置时间传值的代码:int Clock::SetTime(int h,int m,int s){ H = h; M = m; S = s;}可以看到Clock类本身的成员变量为H、M、S,要用外部传来的值给它们三个赋值,为了区别它们,我们把形参定义成小写。那么如果我们知道了this的存在,就可以这样写:int Clock::...原创 2019-02-15 16:52:36 · 93 阅读 · 0 评论 -
友元函数的使用
#include&lt;iostream&gt;#include&lt;math.h&gt;using namespace std;class Point{ private: double x; double y; public: Point(double a,double b) { x...原创 2019-02-15 17:04:49 · 186 阅读 · 0 评论 -
友元类的使用
#include<iostream>#include<math.h>using namespace std; class Point{ private: double x; double y; public: Point(double a,double b) { ...原创 2019-02-15 17:44:39 · 954 阅读 · 0 评论 -
C++为二维数组分配空间
int** a = new int*[10]; for (int i = 0; i < 10; i++) { a[i] = new int[10]; }原创 2019-05-02 12:39:33 · 1471 阅读 · 0 评论