C++
文章平均质量分 66
victory_523
爱生活,爱编程!!!
展开
-
复数类 Complex
---》:原则上复数是不能比较大小的,此处主要是练习运算符重载才写的复数比较大小:#includeusing namespace std;class Complex { public: Complex(double real = 0.0,double image = 0.0) //构造函数 :_real(real) ,_image(image) {} Complex(原创 2017-07-06 19:21:34 · 385 阅读 · 0 评论 -
static关键字的作用
内存分区1)堆:由程序员手动分配和释放,完全不同于数据结构中的堆,分配方式类似链表,若程序员不释放,程序结束时由系统释放。2)栈:由编译器自动分配和释放,存放函数的参数值、局部变量的值等,操作方式类似数据结构中的栈。3)全局(静态)存储区:存放全局变量和静态变量,包括DATA段(全局初始化区)和BSS段(全局未初始化区),程序结束后由系统释放。其中,BSS段的特点是在程序执行之前BSS...原创 2018-07-29 09:29:29 · 295 阅读 · 0 评论 -
C++继承与多态的常见面试题
1.话不多说,我们先来看一道题:#include<iostream>using namespace std;class A{public: void foo() { printf("A::foo()\n"); } virtual void fun() { printf("A::fun()\n"); }};class B : public A{pub...原创 2018-03-18 11:28:27 · 4543 阅读 · 2 评论 -
C++入门基础知识
C++入门1.命名空间在C++中,为了避免标识符的命名发生冲突,标准C++引入了关键字 namespace (命名空间),可以更好的控制标识符的作用域。先看一个程序:#includeusing namespace std;int a = 10;namespace A{ int a = 20;}namespace B{ int a = 30;}nam原创 2017-06-24 00:31:03 · 325 阅读 · 0 评论 -
类和对象
1.类和对象的基础知识类是对象的抽象,而对象是类的具体实例。类是一种抽象的数据类型,其定义为:class 类名{ }; 类是创建对象的模板,代表了某一批对象的共性和特征。一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例,拥有类的成员变量和成员函数。与结构体一样,类只是一种复杂数据类型的声明,不占用内存空间。而对象是类型的一原创 2017-07-04 09:35:20 · 424 阅读 · 0 评论 -
Date 日期类
在学C++类的时候,日期类是一个很基础也很重要的类,所以有必要实现一下。常规日期类的本身并不复杂,实现的过程主要涉及到了一些构造函数,拷贝构造函数,以及各种运算符的重载等,而难点主要在于如何保证日期的有效性,比如我们知道年必须为正数,月都是1-12之间的整数,各个月的天数不同以及闰年2月天数的变化等等,如何将这些体现在我们对于一个日期类对象进行自增,自减以及加减多少天得出正确的日期等运算中。原创 2017-07-07 10:39:20 · 328 阅读 · 0 评论 -
动态内存管理
1:总结并剖析malloc/free和new/delete之间关系和差异。C语言动态内存管理:开辟空间: malloc calloc realloc释放空间: freeC++动态内存管理:开辟空间: new :开辟指定大小空间 new[ ] :开辟数组空间释放空间:delete :释放空间 ...原创 2017-07-07 23:33:46 · 209 阅读 · 0 评论 -
讨论构造、拷贝构造的N种调用情况
1.先总结C++对传参合传返回值时构造的优化处理。 2.再完成下面的题目。 Test1中调用了___次AA的拷贝构造函数,___次AA的赋值运算符函数的重载。 Test2中调用了___次AA的拷贝构造函数,___次AA的赋值运算符函数的重载。 Test3中调用了___次AA的拷贝构造函数,___次AA的赋值运算符函数的重载。 class AA {}; AA f (AA原创 2017-07-15 22:51:14 · 319 阅读 · 0 评论 -
引用计数的写时拷贝
首先我们需要知道什么是写时拷贝,通俗的说,就是写的时候再拷贝。那到底什么才是写时拷贝呢?举一个很简单的例子,就是创建一个String类的对象,然后用这个对象再拷贝出多个对象,当然指针也会拷贝过去,造成多个对象指向同一块空间,当对某个对象进行读操作时,不会发生什么问题,但当需要对某个对象进行写操作时,就会出现修改某个对象导致所有对象都会跟着一块修改,但这并不是我们所期待带的,我们希望只修改某一个...原创 2017-07-17 22:26:07 · 186 阅读 · 0 评论 -
菱形继承
1:分析菱形继承的问题。2:剖析虚继承是怎么解决二义性和数据冗余的。首先我们来看看什么是继承?继承面向对象复用的重要手段。通过继承定义一个类,子类共享父类继承下来的成员。继承的方式有:public,private,protected总结:总结:1.基类的私有成员在派生类中是不能被访问的,如果一些基类成员在类外不想被基类对象直接访问,但需要在派生类中能访问,就定义为保原创 2017-07-21 23:28:24 · 343 阅读 · 0 评论 -
虚函数和多态的那些事
1.虚函数类的成员函数前面加上virtual关键字,则这成员函数称为虚函数。虚函数重写--当在子类中定义一个与父类完全相同的虚函数时,则称子类这个函数重写(也称覆盖)了父类的这个虚函数。#include<iostream>using namespace std;class Person{public: virtual void BuyTickets() //父类...原创 2017-07-25 17:54:26 · 315 阅读 · 0 评论 -
多态及多态的对象模型
1.什么多态? 所谓多态,其实就是“多种形态”。C++中虚函数的作用主要就是实现多态。简单说父类的指针或者引用调用重写的虚函数,当父类指针或者引用指向父类对象时调用的是父类的虚函数,指向子类对象调用的是子类的虚函数。虚函数表是通过一块连续内存来储存虚函数的地址。这张表解决了继承、虚函数(重写)的问题。在有虚函数的对象实例中都存在一个指向虚函数表的指针,虚函数表就像一张地图,指明实际应该调用...原创 2017-07-26 23:17:01 · 385 阅读 · 0 评论 -
为什么模板不支持分离编译?
在C++中,为了一个项目的规范化我们通常把代码归类为三类:声明文件、实现文件、测试文件。比如,我们要实现一个顺序表,那么规范化就是建立3个文件:SeqList.h (顺序表相关声明)、SeqList.cpp(顺序表相关实现)、test.cpp(顺序表测试文件)。那么普通顺序表这样写一点问题都没有,用模板实现成这样的顺序表是否也是没有任何问题的呢?可事实是一旦我们通过模板来实现这样的顺序原创 2017-08-04 18:09:35 · 471 阅读 · 0 评论 -
SmartPtr(智能指针)
为什么会有智能指针?在我们现实生活中有这样一个使用场景,每次我们new或者malloc了一块空间,完了必须需要我们手动delete或者free释放这块空间,否则会出现内存泄漏。但是,实际应用中程序未必都会按照顺序执行到释放空间那一步,有时候会在中间部分抛出异常使执行流发生跳转或者发生其他状况,总之代码未按照我们期望的那样去执行,就有可能导致内存泄漏。这时候我们就引入智能指针(自动化管理指针所指...原创 2017-08-05 16:15:01 · 1652 阅读 · 1 评论 -
输出100-200之间的素数
#include#includeusing namespace std;int main (){ int i = 0; int j = 0; int k = 0; for(i=101; i<=200; i+=2) { k = i/2; for(j=2;j<=k;j++) if(i%j == 0) { break; } if(j>k)原创 2017-03-30 22:28:36 · 523 阅读 · 0 评论 -
C++打印乘法口诀表
#includeusing namespace std;int main(){ int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { cout<<i<<"*"<<j<<"="<<i*j<<" "; } cout<<endl; } return 0;}输出结果:注意:1. 使用两个嵌套的fo原创 2017-03-31 13:21:34 · 837 阅读 · 0 评论 -
malloc/free、new/delete的异同
malloc/free、new/delete的异同相同点:都可用于申请动态内存和释放内存,进行动态内存管理。不同点:(1)操作对象不同。malloc 与 free 是 C++/C 语言的标准库函数,new/delete 是 C++ 的操作符。对于非内部数据类的对象而言,只用 malloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执...原创 2018-07-29 12:06:23 · 378 阅读 · 0 评论