Try Catch异常处理
Trty Catch
异常处理的一些操作和步骤
一个try可以对应对个catch
1234567891011f(int a){ if( a < 1 ) throw a;}try{ }catch(int){ cout << "a小于1";}
可以单独写一个类处理和接受异常
12345678910111213141516171819202122232425262728293031323334#include <iostream>using namespace std;//异常类class listException{pubilc: listException(string str):str(str){} void print() { cout << str <<endl; }protected: string str ...
设计实例(顿开)
12345678910111213141516171819202122232425262728293031323334353637#include <iostream>#include <map>using namespace std;class Worker{public: Worker(string name,int salary,int age,string tel):_name(name),_tel(tel),_age(age),_salary(salary){} void show() { cout << _name << '\t' << _age << '\t' << _tel << '\t' << _salary <<endl; }private: string _name; int _ ...
顿开教育学习笔记
一、多态多态成立三要素
要有继承
虚函数重写
要有父类指针指向子类对象
多态是框架的基础
顿开教育学习笔记
template123456//重载<<(左移)运算符friend ostream& operate<<(ostream const& out,people worker){ out << worker.name << worker.age; return out;}
类模板有一处重点,涉及类的构造函数,构造函数时类模板会识别定义的结构体
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122#include <iostream ...
顿开教育学习笔记
C++IO流
通过#include 提供的控制符,进行输入输出格式控制
1234567891011121314151617181920212223242526272829#include <iostream>#include <iomanip>#include <string>using namespace std;int main(){ cout << "1" << endl; cerr << "标准错误" << endl; clog << "标准信息" << endl; cout.put('a'); cout.put('\n'); //不够不空格,多了就截取 cout.write("LOVEYOU\n", 10); // 10可现实元素个数 bool b = 1.1; cout << boolalpha << b &l ...
迭代(顿开)
迭代遍历12345678910111213141516171819//数组int arr[]{1,2,3,4,5,6};cout << "size(arr)" << size(arr) << endl; //6cout << "sizeof(arr[0])" << sizeof(arr[0]) << endl; //4cout << "sizeof(arr)" << sizeof(arr) << endl; //24//新用法——迭代cout << "arr遍历:" << endl;for(int i : arr) { cout << i << "\t";}//简单用法autofor(auto i : arr) { cout << i << " ...
内联函数(顿开)
一、内联函数123456//内联函数 //inline fun(){ }
二、默认参数和占位参数
默认参数:必须从右往左写(一旦出现默认参数,后边的参数必须都是默认的)
12345678//占位参数 /* 1.占位但是不调用 2.为之后的函数扩充留下线索 */void print(int){ cout << "PRINT()";}
三、函数重载1234567int fun(int ,int){ }int fun(char , char){ }
四、string12345678910string name = "mingming";for(auto i : name){ cout << i ; // mingming}//转c风格字符串const char* cname = name.data();
顿开教育学习笔记
1、构造函数123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657//构造函数的几种形式class circle{private: int x; int y; int r;public: //无参构造 //有参构造 circle(int a,int b,int c){ x=a; y=b; r=c; } circel(){ }};// 定义了一个Stu类实现构造与析构//同时,当内存不再使用的时候,应使用free()函数将内存块释放掉。#include<iostream>#include<string.h>using namespace std;class Stu {public: Stu() { m_age ...
顿开教育学习笔记
C++使用new和delete替代malloc和free
一、==static==静态函数
一个类中可以有一个或者多个静态成员变量,所有对象都共享这些静态成员变量,都可以引用他
静态成员必须初始化
不属于任何一个对象
静态成员存在与全局区,但是作用域有限制
123456789101112//静态成员访问的两种方式class stu{ public: static int age = 0;}int main(){ stu s1; //方法一 stu::age; //方法二 s1.age;}
二、友元类
123456789101112131415//静态成员访问的两种方式class stu{ friend class tea;//类tea声明为类stu的友元类,在tea中就可以访问a的私有成员 public: static int age = 0;};class tea{};int main(){ stu s1; ...
《Effective C++》条款50~59
条款54:让自己熟悉包括TR1在内的标准程序库
TR1指的是Technical Report 1,是C++程序库工作小组对该份文档的称呼。
主要说明了C++标准程序库的各个成分:STL、Iostream、国际化支持(wchar_t、wstring)、数值处理、异常阶层体系。C89标准程序库。
条款54则就命名空间tr1内的部分新组件的使用进行了详尽的介绍。
智能指针(smart pointers):嵌套在tr1命名空间内,TR1组件shared_ptr的全名是std::tr1::shared_ptr,使用时std::shared_ptr即可.
tr1::shared_ptr和 tr1::weak_ptr。前者的作用有如内置指针,但会记录有多少个tr1::shared_ptrs共同指向同一个对象。这便是所谓的reference couming(引用计数)。一旦最后一个这样的指针被销毁,也就是一旦某对象的引用次数变成 0,这个对象会被自动删除。这在非环形(acyclic)数据结构中防止资源泄漏很有帮助,但如果两个或多个对象内含tr1::shared_ptrs并形成环状(cycle) ...