函数模板覆盖以及处理类的私有
来源:互联网 发布:seo屈臣氏优化方案 编辑:程序博客网 时间:2024/05/22 03:46
函数模板实现通用,可以根据自有数据类型,进行优化
结构体可以直接赋值(没有私有变量)
所有成员都是公有的类型可以赋值(一开始初始化)
如果类有私有成员变量,不可以用{}初始化
类的对象之间默认是可以直接赋值
类,结构体都有一个默认赋值操作= 浅拷贝 ,交换数据
深拷贝用的最多,函数模板的覆盖
#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<string>class info{public: char name[40]; char *p; int data;private: int num;public: void set(int X) { this->num = X;//通过接口设置私有变量 } int get() { return this->num;//返回值,副本机制 }};template<typename T>void swap(T &a, T &b){ std::cout << "通用函数模板" << std::endl; T temp = a; a = b; b = temp;//交换两个变量}//模板为空,明确类型,template<>void swap(info &info1, info &info2){ std::cout << "特有函数模板" << std::endl; //通用模板可以实现通用,针对自己的数据类型做出优化 //计数器,对象交换计数器 info temp = info1; info1 = info2; info2 = temp; //}void main(){ info info1; info info2; std::strcpy(info1.name, "lbc"); std::strcpy(info2.name, "bcl "); info1.data = 102; info2.data = 201;//初始化 info1.p = new char[10]; std::strcpy(info1.p, "haha"); //info2.p = nullptr;//C++的空指针 info2.p = new char[100]; std::strcpy(info2.p, "hehe"); info1.set(89); info2.set(98); swap(info1, info2); std::cout << info1.name << " "<< info1.data <<" "<<info1.get()<< std::endl; std::cout << info1.p << std::endl; std::cout << info2.name << " "<<info2.data <<" "<<info2.get()<< std::endl; std::cout << info2.p << std::endl; std::cin.get();}
0 0
- 函数模板覆盖以及处理类的私有
- 模板函数以及模板类的使用
- 类的嵌套以及类的私有构造函数
- 函数包装器,函数私有类处理
- 类模板的友元函数的默认实参不能是 类模板的私有数据成员
- 虚函数 以及覆盖
- c++学习(模板函数以及模板类)
- 什么是函数模板以及什么是类模板
- 构造函数私有化的作用以及私有继承
- 类的私有成员变量和私有成员函数
- 5.7.6 指令处理函数的“私有”操作
- Javascript中类的构造函数以及原型构造法,以及定义共有变量和私有变量
- 利用模板实现virtual 重新覆盖父类函数的功能
- 模板函数和类的特化以及偏特化
- 模板类 Template Classes 以及模板类编译时的处理
- 多态的缺陷 “覆盖”私有方法
- 多态的缺陷:“覆盖私有方法”
- C++中的模板比较容易混淆的几个概念:类模板和类成员模板以及函数模板
- Hadoop2.6.0完全分布式集群搭建实操笔记
- 快速将网页中的表格导入到excel中
- ZOJ - 3758 - Singles' Day(素数判定)
- ZOJ Date Bugs
- GitHub 优秀的 Android 开源项目
- 函数模板覆盖以及处理类的私有
- FP-Growth算法
- 获取的NSDate时间和实际相差8个小时的解决方案
- rvm安装
- 卡特兰数取模
- poj 1568
- TOMCAT 异常启动的情况
- iOS多线程与网络开发之NSURLCache
- 士兵杀敌(一)