C/C++学习
许多年以后~
这个作者很懒,什么都没留下…
展开
-
到底什么时候会调用拷贝构造函数?
/* 到底什么时候会调用拷贝构造函数? *//* 明白 初始化 和 赋值 的区别: 初始化:定义(第一次出现)的同时赋值(也可以不赋值 默认初始化) 只有一次 赋值:定义完成以后再赋值(不管在定义的时候有没有赋值)就叫做赋值 有多次*/#include <iostream>#include <string>using namespace std;class Student{public: Student(string name = "",原创 2021-12-22 16:34:09 · 593 阅读 · 0 评论 -
类模板与友元详解
/* 类模板 与 友元 详解 *///4种情况//1)、函数、类、类的成员函数作为类模板的友元//2)、函数模板作为类模板的友元//3)、函数模板作为类的友元//4)、类模板作为类模板的友元#include <iostream>using namespace std;void Func1() {}class A{};class B{public: void Func() {} template <class T> friend原创 2021-12-22 10:51:29 · 389 阅读 · 0 评论 -
c++类模板与继承详解
/* c++类模板 继承 详解 *//* 类模板和类模板之间、类模板和类之间可以互相继承。它们之间的派生关系有以下四种情况 *//* 1)、类模板继承类模板 2)、类模板继承模板类 3)、类模板继承普通类 4)、普通类继承模板类*/#include <iostream>using namespace std;//1、类模板继承类模板template <typename T1, typename T2>class A{ T1 x;原创 2021-12-22 10:46:48 · 3118 阅读 · 0 评论 -
类模板的显示具体化
/* 类模板的显示具体化(实例化)*//*自定义Point 类 含x和y坐标(类型int,float,char*) 希望当 x 和 y是其他类型时以逗号分隔, 都是字符串时以|为分隔,第一个参数是字符串,第二个参数是其他类型时输出以||分隔 */#include <iostream>using namespace std;//1、普通类模板template <typename T1, typename T2>class Point{private: T1原创 2021-12-21 16:28:39 · 227 阅读 · 0 评论 -
c++多态与虚函数
/* C++ 多态 与 虚函数 *//* 多态(polymorphism)”指的是同一名字的事物可以完成不同的功能 *//* 分为编译时的多态和运行时的多态: 编译时多态:函数的重载(包括运算符的重载)、对重载函数的调用,在编译时就能根据实参确定应该调用哪个函数 运行时多态:和继承、虚函数等概念有关 *//* 只有派生类的虚函数覆盖基类的虚函数(函数原型相同)才能构成多态(通过基类指针访问派生类函数)*/#include <iostream>using namespa原创 2021-12-20 10:32:54 · 555 阅读 · 0 评论 -
C++向上转型
/* C++ 向上/向下转型 *//* 将派生类赋值给基类(安全) *///向上转型后通过基类的对象、指针、引用只能访问从基类继承过去的成员(包括成员变量和成员函数),不能访问派生类新增的成员#include <iostream>using namespace std;namespace LL{ //基类 class A { public: A(int a); public: void display();原创 2021-12-18 17:36:52 · 1014 阅读 · 0 评论 -
c++友元函数和友元类详解
/* c++友元函数和友元类详解 *//* 只有本类中的函数可以访问本类的 private 成员,借助友元(friend),可以使得其他类中的成员函数以及全局范围内的函数(普通函数?)访问当前类的 private 成员*//* 友元函数可以访问当前类中的所有成员,包括 public、protected、private 属性的 *//* 在类外定义,在类中声明,不属于当前类的函数,前面加上friend关键字构成友元函数,友元函数可以是不属于任何类的非成员函数,也可以是其他类的成员函数 *//*1、将原创 2021-12-18 09:27:56 · 592 阅读 · 0 评论