![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++基础
Violetfh
临镜画眉,红衣轻拭泪痕脂香。花轿已到门前,盖上红帕,想到那离别时你那真挚的承诺:“明年桃花满枝时,我会回来找你。”又想到你被任用时的那绽开的笑颜,是我从不曾相见的 嫁于高官换仕途,换你开颜 ,即使你不知亦无悔。
展开
-
有无虚函数的继承
用这个方法A.什么的调用的都是自己弗父类的指针可以指向儿子,儿子的指针不能调用老爸如果不是虚函数老爸的指针只能调用自己如果有虚函数老爸的指针指向谁就调用谁#include <iostream>using namespace std;class A { private: int x; int y; public: A(int i, int j) { x = i; y = j; } virtual void disp() { .原创 2021-06-27 16:50:47 · 92 阅读 · 1 评论 -
运算符重载
(1)重载运算符限定在C++语言中已有的运算符范围内并且允许重载的运算符之中,不能创建新的运算符。(2)运算符重载实质上是函数重载,因此编译程序对运算符重载的选择,遵循函数重载的选择原则。(3)重载之后的运算符不能改变运算符的优先级和结合性,也不能改变运算符操作数的个数及语法结构。(4)运算符重载只能和用户自定义类型的对象一起使用,或者用于用户自定义类型的对象和内部类型的对象混合使用。也就是说,经重载的运算符,其操作数中至少应该有一个是自定义类型。这样,重载的运算符才有意义。(5)运算.原创 2021-06-19 10:03:06 · 169 阅读 · 0 评论 -
进制转换hex,dec,oct,bin
hex,Hexadecimal .十六进制。dec,Decimal ,十进制。oct,Octal ,八进制。bin,Binary,二进制。直接在cout的后面加上转义字符。cout<<转义字符<<数据<<endl; #include <iostream> using namespace std; class number { protected: int value; public: number(int i) .原创 2021-06-18 17:18:52 · 2100 阅读 · 0 评论 -
突然记得朋友的题
#include <iostream>#include <string>using namespace std;class Student { private: string number; int english; int computer; int average; public: Student(string a, int b, int c): number(a), english(b), computer(c) { } int .原创 2021-06-15 02:10:11 · 73 阅读 · 1 评论 -
继承和派生
继承与派生是同一个过程从不同的角度看:保持已有类的特性而构成新类的过程称为继承在已有类的基础上新增自己的特性而产生新类的过程称为派生被继承的已有类称为基类(或者父类)派生出的新类称为派生类(或子类)直接参与派生出某类的基类称为直接基类基类的基类甚至更高的基类称为间接基类继承的目的:实现设计与代码的重用派生的目的:当新的问题出现,原有程序无法解决(或者不能完全解决)时,需要对原有的程序进行改造。继承:在一个已存在的类的基础上建立一个新的类。已存在的类:基类(base class)或父原创 2021-06-05 17:05:04 · 1462 阅读 · 1 评论 -
友元函数和友元类
友元的概念:遵循一定规则而使对象以外的软件系统能够不经过消息方式而直接访对象内封装的数据成员的技术方法便是友元。友元是面向对象系统与过程系统衔接纽带。友元有:友元函数,友元成员,友元类友元可以放在类的公有,私有,保护部分。友元函数1.友元函数可访问类的私有和保护成员,但不是类的成员函数2.友元函数不能用const修饰3.友元函数可以在类定义的任何地方声明,不受类访问限定符限制4.一个函数可以是多个类的友元函数在类的定义中用friend声明了一个外部函数或其他类的成员函数(publ原创 2021-05-29 07:30:06 · 2106 阅读 · 0 评论 -
指向类成员的指针
C++提供的一种特殊的指针,它指向类的成员,而不是指向类的一个对象中该成员的一个实例,这种指针称为指向类成员的指针。由类外指向类内的指针变量格式类型符 类名::*指针名=类中数据成员地址描述``#include <iostream>using namespace std;class FH { public: int i, *p; //类内和类外的不同,名字相同不影响。 FH() { i = 10; p = &i; }};int原创 2021-04-24 23:38:20 · 235 阅读 · 0 评论 -
拷贝构造函数的初始化方法
#include <bits/stdc++.h>using namespace std;class Student { private: int id; string name; double score; public: Student(int d, string ame, double core): id(d), name(ame) //不同的方式。 { score = core; } void print() { cout <&...原创 2021-04-23 13:57:05 · 636 阅读 · 0 评论 -
析构函数和拷贝构造函数的调用顺序
就是类似于栈一样也可以理解为一个园,先建立的对象先用拷贝构造函数,后建立的后用,调用析构函数优先,当删除对象时会自动调用析构函数,先删除后建立的,再删除先调用的。#include <iostream>#include <string>using namespace std;class student { private: int year; int month; int day; public: student(int y, int m, in原创 2021-04-23 13:39:16 · 716 阅读 · 0 评论 -
深拷贝构造函数和浅拷贝构造函数
深拷贝构造函数和浅拷贝构造函数 拷贝构造函数有深拷贝构造函数和浅拷贝构造函数分类:拷贝构造函数分为深拷贝构造函数和浅拷贝构造函数。区别:浅拷贝,即只复制对象空间,不复制对象资源。深拷贝,既复制对象空间又复制资源。由C++语言提供的默认拷贝构造函数只是对对象进行浅拷贝逐个成员依次拷贝。浅拷贝深拷贝和浅拷贝只在z指针变量中才有的说法,指针对象要用深拷贝,可是其他变量就不用。深拷贝当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针将指向同一个地址,当对象快结束时,会调用两原创 2021-04-18 22:08:24 · 316 阅读 · 1 评论 -
C++类和对象及其函数
类(class)是用户自定义数据类型。如果程序中要使用类型,必须根据实际需要定义,或者使用好自己设计好的类C++定义一个类,其方法与定义一个结构体类型是相似的,一般形式为:类由三部分组成:类名,数据成员和成员函数。class 类名{ private: public: protected:};类成员三种访问权限分别是 private(私有成员),public(公有成员),protected(受保护成员),在每一种访问权限下,均可以定义数据成员和成员函数。①私原创 2021-04-16 01:05:37 · 1012 阅读 · 3 评论 -
C++的typedef
typedeftypedef为一个已有的类型定义一个新的名字typedef 类型 新名字typedef int feel//这会告诉编译器feel是int的另一个名称#include <iostream>using namespace std;int main () { typedef int feel; feel a = 10; printf("%d", a);}3 typedef与#define两者的区别如下:#define进行简单的进行字符串替换。#原创 2021-04-11 02:58:07 · 322 阅读 · 0 评论 -
C++命名空间naespace
所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。一 :和<iostream.h>格式不一样,前者没有后缀。实际上,在你的编译器include文件夹里面可以看到,二者是两个文件。打开文件就会发现,里面的代码是不一样的。后缀为.h的头文件c++标准已经明确提出不支持了。早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h原创 2021-04-09 14:01:33 · 172 阅读 · 2 评论 -
C++ class类和struct结构体的区别
类(class)与结构体(struct)的区别引入C语言的结构体,是为了保证和c程序的兼容性。c语言中的结构体不允许定义函数成员,且没有访问控制权限的属性。c++为结构体引入了成员函数,访问控制权限,继承,多态等面向对象特性。c语言中,空结构体的大小为0,而C++中空结构体大小为1。**class中成员默认是private struct中的成员默认是public。·class继承默认是private继承,而struct继承默认是public继承。**class可以使用模版,而struc原创 2021-04-09 13:18:14 · 998 阅读 · 3 评论 -
C++模板函数
函数模型模板可以让程序对任何类型其他数据进行同样的处理。函数模板template <class 类型参数> (template <typename 类型参数>)#include <iostream>using namespace std;template <class T>T min(T a[], int n)//T的类型由数组类型决定{ int t; T minv = 999; for (int i = 1; i < n;原创 2021-04-08 23:57:57 · 282 阅读 · 0 评论 -
C++内联函数和重载函数
内联函数也称内嵌函数,它主要是解决程序的运行效率。函数调用需要建立栈内存环境,进行参数传递,并产生程序执行转移。这些工作都需要一些时间开销。有些函数使用频率高,但代码却很短。为了提高效率,可将这部分代码函数设置为内联函数。在函数名前冠以关键字inline,该函数就被声明为内联函数。每当程序中出现对该函数的调用时,C++编译器使用函数体中的代码插人到调用该函数的语句之处,同时用实参取代形参,以便在程序运行时不再进行函数调用。#include <iostream>using na.原创 2021-04-08 22:13:59 · 204 阅读 · 0 评论 -
C++输出一个范围高的数
在C语言或者C++中数据都有范围unsigned int 0~4294967295int 2147483648~2147483647unsigned long 0~4294967295long 2147483648~2147483647long long的最大值:9223372036854775807long long的最小值:-9223372036854775808unsigned long long的最大值:18446744073709551615#include <原创 2021-04-07 14:40:14 · 546 阅读 · 2 评论 -
C++的const的用法
一般用法,用来定义全局变量,比如:const int N=99999;这种做法比define比较安全,但是N不能被修改。当const和指针一起使用的时候,有三种情况。1.指向常量的指针:一个指向常量的指针变量。const char*p="abcd";//声明了指向常量的指针。所以p指向的其实就是这一串数据而且不允许被改变。所以p[3]='x',想改变数字其实是不行的,可是可以改变p所指的地址p="asdf"。常指针:把指针变量所指的地址声明为常量,而不是把地址内容声明为常量。cha原创 2021-03-29 17:58:49 · 87 阅读 · 0 评论 -
C++数据类型引用&
引用是C++的一个特殊的数据类型描述,主要用来程序不同的部分,指向同一个地址,这可以通过改变其中变量从而改变另一个变量。引用运算符为&形式: 数据类型&引用变量名=变量名例子:#include <iostream>using namespace std;int main (){ int x;//这里需要声明x,因为x是变量名,y只是引用变量名。 int &y=x; x=30; y=20; cout<<x<<" "<原创 2021-03-29 17:32:51 · 506 阅读 · 1 评论 -
C++动态内存的分配和释放
1,new和delete的基本使用形式。用new用于堆内的内存的分配的基本形式:指针变量名=new 类型1定义一个整型指针将变量int *p;p=new int ;指针变量名=new 类型名(初值)用delete用于new分配的堆内存的释放语法形式:delete 运算符例子#include <iostream>using namespace std;int main () { int *p; p = new int; //用new分配动态内存。 *p =原创 2021-03-22 14:49:46 · 609 阅读 · 1 评论