做为自己的入门语言,10多年了,学了C++基础之后就专做web开发,一直都在整PHP和VUE。最近的空闲,重新回味下C++。
来一个简单的代码
//#define _CRT_SECURE_NO_WARNINGS
//定义_CRT_SECURE_NO_WARNINGS 主要考虑strcpy_s /和 strcpy等部分string字符串操作异常,如果考虑向下兼容则使用,否则不建议使用。
#include <iostream>
#include <thread> //多线程
#include <exception> //异常
#include <string> //字符串需要
using namespace std;
//-----------------------------------------------类型函数重载开始------------------------------------------->
//重载函数int
int max(int x, int y) {
if (x > y) {
return x;
}
else {
return y;
}
}
//重载函数float
float max(float x, float y) {
if (x > y) {
return x;
}
else {
return y;
}
}
//重载函数调用(类型调用)
void IntFloatMain() {
int a = 100, b = 200;
std::cout << "int max = " << max(a, b) << "\n";
float x = 11.11f, y = 22.22f; //float类型,带个f
std::cout << "double max = " << max(x, y) << "\n";
}
//-----------------------------------------------类型函数重载结束--------------------------------------------->
//
//-----------------------------------------------不同参数重载开始-------------------------------------->
//3个参数取最大值
int LengthMax(int x, int y, int z) {
if (x > y) {
if (x > z) {
return x;
}
else {
return z;
}
}
else {
if (y > z) {
return y;
}
else {
return z;
}
}
}
//2个参数取最大值
int LengthMax(int x, int y) {
if (x > y) {
return x;
}
else {
return y;
}
}
//重载函数调用(参数数量)
void ArgeLengthMain() {
int a = 100, b = 200, c = 300;
std::cout << "max = " << LengthMax(a, b) << "\n";
std::cout << "max = " << LengthMax(a, b, c) << "\n";
}
//-----------------------------------------------不同参数重载结束------------------------------------>
//-----------------------------------------------函数模板开始------------------------------>
template <typename I> //函数模板声明 //注意这里定义的I为未知的类型,也就是可以是int,float,doublue等类型,I为自定义名称
//定义函数模板,带2个参数
I Tempmax(I x, I y) {
if (x > y) {
return x;
}
else {
return y;
}
}
void TempLateMax() {
int a = 100, b = 200;
std::cout << "Template int max = " << Tempmax(a, b) << "\n";
double x = 11.11, y = 22.22;
std::cout << "Template double max = " << Tempmax(x, y) << "\n";
}
//-----------------------------------------------函数模板结束------------------------------>
//------【变量类型】------>
int tempdemo_value = true;
int cc = 100;
void tempdemo() {
static int ax = 100; //静态变量
auto bx = 100;
register int cx = 1000; //寄存器变量,直接在CPU内进行运算
extern int tempdemo_value; //在函数体内引用,就可以直接引用,不过如果是外部的全局变量,直接应用也是可以的。比如一下的变量cc,同样可以对cc变量进行重新赋值
sizeof(bx); //查看变量占用的字节
std::cout << "cc=" << cc << "\n";
}
int main()
{
try {
IntFloatMain(); //调用不同类型的重载函数
ArgeLengthMain(); //调用同类型,不同的参数数量的重载函数
TempLateMax();//调用函数模板
return true;
}
catch (exception e) {
cout << "Exception \n";
}
}
关于作者