
C++
就爱棒棒糖
这个作者很懒,什么都没留下…
展开
-
C++堆(Heap)和栈(Stack)的区别
参考网址:https://www.cnblogs.com/ChenZhongzhou/p/5685537.html转载 2018-07-02 21:32:18 · 405 阅读 · 0 评论 -
case03:Cat类
参考书籍:面向对象程序设计案例精析主要是实现构造函数和成员函数的实现,同时本人进行了改化,加入了深复制的东西,相关的练习程序如下:一、主函数cat_main.cpp#include "cat.h"int main(int argc,char argv){ Cat cat("MaoMi"); cat.talk(); cat.eat(10);//吃了十点食物 cat.drin...原创 2018-07-31 10:53:36 · 1788 阅读 · 0 评论 -
C++友元函数和友元类
友元函数 1、友元函数是在类声明中由关键字friend修饰说明 的非成员函数,在它的函数体中能够通过对象名访 问 private 和 protected成员2、作用:增加灵活性,使程序员可以在封装和快速性 方面做合理选择。3、访问对象中的成员必须通过对象名。友元函数举例说明:#include "iostream" #include "cmath"using namespa...原创 2018-08-01 10:01:41 · 480 阅读 · 1 评论 -
通过Point类和Triangel类实现三角形面积的计算
参考: 难点1:在计算距离的时候,在Triangel类中,使用P1.dis(p2)是错误的,因为定义的Point p1是一个对象的变量,这时候不是一个对象的常量,所有没有进行转换,但是此时调用友元函数计算是可以实现的,应为友元函数只是传参的因素,同时采用 Point getPoint1()const { ret...原创 2018-08-01 15:12:09 · 3436 阅读 · 0 评论 -
case5:继承和派生的作用举例_1.0版本(不使用继承)
在面向对象对象程序设计C++的书中有这样一个案例: (1)我们通过Student类和Teacher类,不使用继承来实现上面的功能:(1) main.cpp/************************************************************************* Object-Oriented Programm...转载 2018-08-10 15:17:00 · 243 阅读 · 0 评论 -
case5:继承和派生的作用举例_2.0版本(使用继承)
格局上一次的讨论:将继承和派生后的写如下:(1)main.cpp/************************************************************************* Object-Oriented Programming C++ * @title School 1.0* @author Haoaowei*Email:a...转载 2018-08-10 16:00:02 · 332 阅读 · 0 评论 -
继承和派生(1):继承概念和继承方式
派生类的定义:看一个有趣的例子:#include <iostream>using namespace std;class A{ public: void f(int i){cout<<i<<endl;} void g(){cout<<"g\n";}};class B:A //缺省继承是私有继承方...原创 2018-08-10 16:35:22 · 1077 阅读 · 0 评论 -
C++重载(2):通过成员函数和友元函数重载
分别通过成员函数和友元函数完成重载#include <iostream>using namespace std;class Complex{public: Complex(double real =0,double imag=0):real(real),imag(imag){}; //构造函数,包含有参数的和没有参数的,默认为0,0 Complex(const ...原创 2018-08-06 16:33:42 · 1347 阅读 · 0 评论 -
继承和派生(2):析构和构造
一、构造函数 派生类的对象的数据结构是由基类中说明的数据成员和派生类中说明的数据成员共同构成。 将派生类的对象中由基类中说明的数据成员和操作所构成的封装体称为基类子对象,它由基类中的构造函数进行初始化。 构造函数不能够被继承,因此,派生类的构 造函数必须通过调用基类的构造函数来初始化基 类子对象。所以,在定义派生类的构造函数时除 了对自己的数据成员进行初始化外,还必须负责...原创 2018-08-10 17:46:46 · 333 阅读 · 0 评论 -
C++ 重载(1):概念引入
先看一个例子:解决为什么我们需要重载#include <iostream>using namespace std;class Complex{public: Complex(double real =0,double imag=0):real(real),imag(imag){}; //构造函数,包含有参数的和没有参数的,默认为0,0 Complex(const...原创 2018-08-03 10:34:15 · 1047 阅读 · 0 评论 -
case04:string练习
参考书籍:面向对象程序设计C++一、项目构架 (1)main_string.cpp#include "mystring.h"#include "iostream"using namespace std;int main(){ String s1; ...原创 2018-08-08 21:14:00 · 164 阅读 · 0 评论 -
继承与派生(3):多继承
多继承可以看作是单继承的扩 展。所谓多继承是指派生类具有多个基类,派生类与每个基类之间的关系仍可看作是一个单继承。 • 多继承是指派生类可以有一个以上的直接基类。多继承的派 生类定义格式为:class <派生类名>: [<继承方式>] <基类名1>, [<继承方式>] <...原创 2018-08-24 17:44:17 · 646 阅读 · 0 评论 -
C++类中的对象成员
参考网址:https://blog.youkuaiyun.com/rhzwan123/article/details/2105205譬如定义一个类A,类B,其中类A为类B的函数成员,此时,类A为类B的对象成员程序的结果分析如下:第一步:A pa(0,0),调用类A的构造函数,长生第一行结果:AAAAAAAAAA第二步:pa.printA();调用类A的成员函数,输出:A.x = 0 ...原创 2018-07-27 11:04:56 · 5859 阅读 · 3 评论 -
C++面向对象的练习:case02:Calendar(日历)
项目需求:制作一个日历,输入年月,得到该年月的日历信息,相关结果如下: 需求分析:自顶部到底部进行设计:第一步:设计输入;第二步:设计表头;第三步;设计日历的主体,第四步,设计表尾;参考网址:如何确定某年某月某日为星期几https://blog.youkuaiyun.com/bible5...原创 2018-07-30 11:06:05 · 572 阅读 · 0 评论 -
case01:C++面向程序设计案例:成绩录入系统03版本
VS文件内容如下:(1)主函数:score03.cpp/************************************************************************//* Boject-Oriented Programming C++@title Score0.3@author haoaowei@Email:aowei_hao@126.co...原创 2018-07-30 09:28:26 · 313 阅读 · 0 评论 -
二叉树遍历
参考网址:https://www.cnblogs.com/ChenZhongzhou/p/5682689.html原创 2018-07-03 16:06:25 · 134 阅读 · 0 评论 -
VS中C++类编辑的简洁形势
在实际的C++程序编译的过程中,为了阅读程序的方便,通常把类的声明、类成员函数的定义和主函数写到一个程序里面,。然而,在实际的编程中,C++程序一般由3个部分组成:(1)类的声明,头文件(后缀为.h);(2)类实现文件(后缀为.cpp);(3)类的使用文件(后缀为.cpp),即主文件。以钟表类为例说明:vs中的存储状态如下:创建一个工程clcok(project)一、编辑类的声明文件(...原创 2018-07-24 19:09:27 · 816 阅读 · 0 评论 -
C++中的*this指针
参考链接:https://blog.youkuaiyun.com/jx232515/article/details/527591271、每个类中都隐含了this指针成员,不用定义;2、对于定义的每个对象,this指向当前对象的地址;3、通过对象调用成员函数时,隐含的都要传递this指针作为实参;4、this指针是常量指针,不能指向别的对象;5、在成员函数中访问成员数据或其他函数,可以通过t...原创 2018-07-25 09:42:59 · 483 阅读 · 0 评论 -
C++构造函数重载
程序例子如下:#include "iostream"using namespace std;//构造函数的重载,析构函数不可以重载class Box{public: Box();//无参的构造函数 Box(int length,int width,int height);//有参数的构造函数 ~Box(); //调用析构函数 int volume(); //成员函...原创 2018-07-25 10:35:38 · 20881 阅读 · 0 评论 -
C++析构函数在对象数组,动态指针中使用
一、c++中析构函数的主要作用:1、完成对象被删除前的的一些清理工作;2、在对象生存周期结束之后系统会自动调用析构函数,然后释放此对象的空间;3、如果程序没有声明构造函数,系统会默认自动产生一个隐含的构造函数;4、析构函数只能有一个,析构函数不能传递任何参数,没有返回类型。5、使用构造函数和析构函数时,注意先后的使用顺序,注意调用时间和调用顺序,在一般情况下,调用析构函数的次序...原创 2018-07-25 11:56:49 · 4376 阅读 · 0 评论 -
拷贝(复制)构造函数定义及3种调用情况举例
一、拷贝构造函数是一种特殊的构造函数,其形参为本类的对 象引用。class 类名 { public : 类名(形参);//构造函数 类名(类名 &对象名);//拷贝构造函数 ... };//拷贝构造函数 ... 类名::类(类名 &对象名)//拷贝构造函数的实现{ 函数体 }如:Box∷Box(const Box&am...原创 2018-07-25 15:31:16 · 39577 阅读 · 7 评论 -
C++浅拷贝(值拷贝)和深拷贝(位拷贝)
参考网址:https://www.cnblogs.com/BlueTzar/articles/1223313.html https://www.cnblogs.com/xiaodingmu/p/7407307.html一、浅赋值问题(1)如果类中叧包含简单数据成员,没有指向堆的指针, 可以使用编译器提供的默认复制构造函数(2)如果类中包含指向堆中数据...原创 2018-07-25 17:16:19 · 9878 阅读 · 1 评论 -
C++开源项目
参考链接:https://www.cnblogs.com/chulia20002001/p/6956678.html转载 2018-07-25 18:30:15 · 869 阅读 · 0 评论 -
LInux下编辑C++
链接:https://blog.youkuaiyun.com/luoweifu/article/details/50197913转载 2018-07-26 10:00:51 · 860 阅读 · 0 评论 -
case01:C++面向程序设计案例:成绩录入系统01版本
/************************************************************************//* Boject-Oriented Programming C++@title Score0.1@author haoaowei@Email:aowei_hao@126.com@Date 2018-07-28@copyright Dep...原创 2018-07-30 08:40:43 · 485 阅读 · 0 评论 -
case01:C++面向程序设计案例:成绩录入系统02版本
/************************************************************************//* Boject-Oriented Programming C++@title Score0.2@author haoaowei@Email:aowei_hao@126.com@Date 2018-07-28@copyright Dep...原创 2018-07-30 09:01:20 · 329 阅读 · 0 评论 -
继承与派生(4):二义性(三角继承和菱形继承)
一般说来,在派生类中对基类成员的访问应该是唯一的,但是,由于多继承情况下,可能造成对基类中某成员的访问出现了不唯一的情况,则称为对基类成员访问的二义性问题。 实际上,在上例已经出现过这一问题,回忆一下上例中(参照继承和派生(3)最后一个例子),派生类A的两基类B1和B2中都有一个成员函 数print()。如果在派生类中访问print()函数,到底是哪 一个基类的呢?于是出现了二...原创 2018-08-30 13:22:39 · 856 阅读 · 0 评论