![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
czopg
不懈进取,永无止境!
展开
-
数组类的构造析构以及运算符重载
数组类的构造析构以及拷贝函数//数组类的构造和析构#define _CRT_SECURE_NO_WARNINGS #include <iostream>using namespace std;class Array{public: Array() { length = 0; space = NULL; cout << "Array() i...原创 2019-04-15 20:02:41 · 608 阅读 · 0 评论 -
7 类型转换 和 8 异常处理
7 C++的类型转换7.1 类型转换名称和语法C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。static_cast 静态类型转换。如int转换成charreinterpret_cast 重新解释类型dynamic_cast 命名上理解是动态类型转换。如子类和父类之间的多态类型转换。const_cast, 字面上理解就是去const属性。4种类型转换的格式:...原创 2019-04-29 16:42:49 · 170 阅读 · 0 评论 -
6 函数模板和类模板
6 函数模板和类模板所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。1)C++提供两种模板机制:函数模板、类模板2)类属 —— 类型参数化,又称参数模板使得程序(算法)可以从逻辑功能上抽象,把被处理的对象(数据)类型作为参数传递。总结: 模板把函数或类要处理的数据类型参数化,表现为参数的多态性,称为类属。...原创 2019-04-29 16:19:40 · 241 阅读 · 0 评论 -
5 纯虚函数和抽象类
5 纯虚函数和抽象类5.1基本概念5.2抽象类案例约定一个统一的界面(接口),让子类使用,让子类必须去实现。面向抽象类编程(面向一套预先定义好的接口编程)解耦合 模块划分5.3抽象类在多继承中的应用C++中没有Java中的接口概念,抽象类可以模拟Java中的接口类。(接口和协议)有关多继承的说明:工程上的多继承工程开发中真正意义上的多继承是几乎不被使用的多继承带来的代码复杂...原创 2019-04-19 19:26:57 · 166 阅读 · 0 评论 -
4 多态
4 多态4.1多态如果子类定义了与父类中原型相同的函数会发生什么?赋值兼容性原则遇上函数重写–父类中被重写的函数依然会继承给子类–默认情况下子类中重写的函数将隐藏父类中的函数–通过作用域分辨符::可以访问到父类中被隐藏的函数Parent *p = NULL;p = &child;p->print(); //会调用父类的函数,为什么?C/C++是静态编译型语言,在...原创 2019-04-19 19:24:40 · 181 阅读 · 0 评论 -
2 类和对象
2 类和对象面向对象三大概念: 封装、继承、多态1类和对象类的封装有2层含义(把属性和方法进行封装 对属性和方法进行访问控制)在用struct定义类时,所有成员的默认属性为public在用class定义类时,所有成员的默认属性为private#pragma once //只包含一次 和条件编译的作用是一样的。类的声明和类的实现分开2对象的构造和析构类的数据成员是不能在声明类时...原创 2019-04-19 19:05:29 · 303 阅读 · 0 评论 -
3 继承和派生
3 继承和派生3.1继承概念类之间的关系has-A:一个类中的数据成员是另一种已经定义的类uses-A:通过类之间成员函数的相互联系,定义友员或对象参数传递实现is-A:继承,关系具有传递性,不具有对称性子类拥有父类的所有成员变量和成员函数子类可以拥有父类没有的方法和属性子类就是一种特殊的父类子类对象可以当作父类对象使用3.2派生类的访问控制派生类继承了基类的全部成员...原创 2019-04-19 19:12:49 · 144 阅读 · 0 评论 -
无法从“const char [19]”转换为“char *”问题
VS2017中无法将字符串常量赋值给字符指针的问题编写C++程序如 char *p1 = "hello wangbaoming "; 会报错!关于类型转换的例程:#include <iostream>using namespace std;int main(){ double dPi = 3.1415926; //1静态的类型转换: 在编译的时 进行基本类型的转...原创 2019-04-24 09:06:18 · 6390 阅读 · 0 评论 -
基础运算符重载
成员函数方法友元函数方法下例重载 + - 前置++ 后置++ 前置-- 后置-- << >> 8种运算符://运算符重载#include <iostream>using namespace std;class Complex{public: Complex(int a = 0,int b = 0) { thi...原创 2019-04-15 14:07:38 · 139 阅读 · 0 评论 -
函数模板与类模板
函数模板//函数模板实现char int数组排序//函数模板本质:类型参数化//函数模板机制:两次编译#include <iostream>using namespace std;template <typename T,typename T1>void mySort(T *myarray, T1 size){ T1 i, j; T tmp; for...原创 2019-04-22 16:17:12 · 219 阅读 · 0 评论 -
字符串类运算符重载
C++字符串类运算符重载//重点#define _CRT_SECURE_NO_WARNINGS#include <iostream>using namespace std;//定义MyString类 字符串数组class MyString{public: //构造和析构函数 MyString() { m_len = 0; m_p = NULL; } /...原创 2019-04-17 16:36:28 · 1565 阅读 · 0 评论 -
浅拷贝与深拷贝以及对象初始化列表和匿名对象问题
类和对象部分浅拷贝与深拷贝的问题(Code::Blocks编译)#include <iostream>#include <cstring>using namespace std;//定义Teacher类class Teacher{public: Teacher(int _id,const char *_name) // 这里加const则不会...原创 2019-04-13 17:16:53 · 236 阅读 · 0 评论 -
1 C++对C的扩展
C++对C的扩展1 C++面向对象的方法 将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体——对象。 对同类型对象抽象出其共性,形成类。 类通过一个简单的外部接口,与外界发生关系。 对象与对象之间通过消息进行通信。• 对象由一组属性和一组行为构成。• C语言 + 面向对象方法论===》Objective C /C++2 C++对C的加强2.1 nam...原创 2019-04-15 23:38:39 · 241 阅读 · 0 评论 -
9 标准I/O流
9 C++输入和输出流9.1 I/O流的概念和流类库的结构C++输入输出包含以下三个方面的内容:标准设备 标准I/O外存磁盘文件 文件I/O内存 串I/OC++的I/O对C的发展–类型安全和可扩展性在C++的输入输出中,编译系统对数据类型进行严格的检查,凡是类型不正确的数据都不可能通过编译。因此C++的I/O操作是类型安全(type safe)的。C++的I/O操作是可扩展的,...原创 2019-04-29 16:48:24 · 365 阅读 · 0 评论