
c++
一只名叫二毛的猫
生活不止眼前的苟且,还有诗和远方。喵~
展开
-
[c++]动态分配空间(Fibonacci数列)
用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中F1 = 1(n = 1)F2 = 1 (n = 2)F3 = Fn - 1 + Fn - 2(n > = 3)原创 2015-03-06 17:58:02 · 3265 阅读 · 2 评论 -
[c++]派生类的应用
在已有的Point类的基础上,定义一个“Circle”派生类,要求:新增一个半径成员;能计算并输出圆的周长及加圆面积 #ifndef __Dervide_circle__circle__#define __Dervide_circle__circle__#includeusing namespace std;#define PI 3.1415926class point原创 2015-06-03 18:04:00 · 1353 阅读 · 0 评论 -
[c++]基类对象作为函数参数(赋值兼容规则)
编程处理教师的基本情况。要求:1、定义一个“person”类,用来存储及处理人的姓名、性别、年龄,成员函数自定;2、定义“teacher”类,公有继承“person”类用来存储教师所在学院、所学专业、学历、学位、职称、教龄等,成员函数自定。3、处理程序,主要包括:⑴显示姓名、性别、年龄函数:既能显示person对象的姓名、性别、年龄,又能显示teacher对象的姓名、性别、年龄原创 2015-06-04 09:00:15 · 3763 阅读 · 0 评论 -
[c++]复数的运算符重载
类的定义和声明#include#includeusing namespace std;class Complex{ friend istream& operator>>(istream &in, Complex &c); friend ostream& operator<<(ostream &out, const Complex &c); friend Com原创 2015-06-06 17:15:42 · 639 阅读 · 0 评论 -
[c++]String字符串类的运算符重载
在c++中有一个新定义的类型string,可以不用那么麻烦的操作字符串,并且一些高级的运算符重载让她的使用更加便捷下面是String类的定义和成员函数的定义:再下面是测试程序:原创 2015-06-07 12:40:04 · 17509 阅读 · 10 评论 -
[c++]容器类
#include#includeusing namespace std;class string1{private: char *str;public: string1(const char *s) { str = new char[strlen(s) + 1]; strcpy(str,s); cout<<"str原创 2015-04-09 16:57:32 · 503 阅读 · 0 评论 -
[C++]拷贝构造的玄机
class B{public: B() { cout << "B()" << endl; } ~B() { cout << "~B()" << endl; } B& operator=(const B& rhs) { cout << "B& operator=(const B& rh原创 2016-01-07 22:56:29 · 660 阅读 · 0 评论 -
[C++]String类的理解
如果不主动编写拷贝构造函数和赋值函数,编译器将以“位拷贝”的方式自动生成缺省的函数(浅拷贝)。倘若类中含有指针变量,那么这两个缺省的函数就隐含了错误。 以类 String 的两个对象 a,b 为例,假设 a.m_data 的内容为“hello”, b.m_data 的内容为“world”。现将a赋给b,缺省赋值函数的“位拷贝”意味着执行b.m_data= a.m_data。 这将造成三个原创 2016-04-03 20:34:07 · 582 阅读 · 0 评论 -
如何测试一个函数的运行时间
void fun(){ using namespace std; clock_t begin = clock(); //要测试的代码 clock_t end = clock(); double elapsed_secs = double (end - begin) / CLOCKS_PER_SEC; cout<<elapsed_secs<<endl;}原创 2016-03-28 14:55:13 · 1045 阅读 · 1 评论 -
智能指针的发展
通常是经由类模板来实现。借由模板来达成泛型,通常借由类的析构函数来达成自动释放指针所指向的内存或对象。智能指针的最初动机是使得下面的代码更安全,最初使用void foo(){ Type* ptr = new Type[10]; // 对p指向的内存块进行赋值 do_something(); delete[] ptr;}当上面的foo()函数出现异常时:void f原创 2016-04-25 09:43:39 · 460 阅读 · 0 评论 -
[C++]单例模式
单例模式:保证一个类只创建一个对象。要考虑到线程安全问题 线程安全:在一个对象new的时候,另一个对象如果同时new,会造成创建的对象不是单类的。所以在第一个对象进行开辟空间时要加互斥锁 mutex._Lock(); mutex._Unlock();引入boost库会使代码空间变大。建议使用如下单例模式中的饿汉模式:即:无论是否使用,都在程序开始的时候产生一个实例,并在以后的调用中返回该实例。(原创 2016-04-14 12:24:52 · 361 阅读 · 0 评论 -
const
const参数: 防止传入函数的参数被改变 参数分为输入型参数和输出型参数,const只能修饰输入型参数 一般的输入型参数采用指针传递,加const可防止意外的改变指针 例如 StringCopy 函数: void StringCopy(char *strDestination, const char *strSource); 其中 strSource 是输入参数,strDestinat原创 2016-04-14 15:22:10 · 331 阅读 · 0 评论 -
[c++]对象指针,引用的操作
1.time类保存在“htime.h”中,要求:⑴数据成员包含时(hour)、分(minute)、秒(second),为私有成员;⑵能给数据成员提供值的成员函数(默认值为0时0分0秒);⑶能分别取时、分、秒;⑷能输出时、分、秒(用“:”分隔),并显示上午(am)或下午(pm);⑸有默认值的构造函数(默认值为0时0分0秒)。说明:成员函数均定义为公有成员。原创 2015-06-03 17:04:15 · 1253 阅读 · 0 评论 -
[c++]运算符重载
complex operator+(complex co1,complex co2)//运算符重载函数{ complex temp; temp.real = co1.real+co2.real; temp.imag = co1.imag+co2.imag; return temp;原创 2015-05-14 18:43:20 · 514 阅读 · 0 评论 -
[c++]构造函数和析构函数
构造函数:1 函数名=类名2 无返回值3 当用类声明对象时,系统自动调用4 如果没有构造函数,系统会自动给一个默认的原创 2015-03-19 22:06:19 · 404 阅读 · 0 评论 -
[c++]cylinder显示每个对象的体积
#includeusing namespace std;#define p 3.1415926class Cylinder{private: double v;public: Cylinder(double r = 0,double h = 0) { v = p * r * r * h; } double vol()原创 2015-03-28 11:21:43 · 1069 阅读 · 0 评论 -
[c++]怎么样知道析构函数先后的析构顺序
#include#includeusing namespace std;class String_date{private: char * str;public: String_date(char * str); ~String_date(); char* get_infor() {return str;}};String_date::Str原创 2015-03-28 11:24:28 · 1364 阅读 · 0 评论 -
[c++]变量引用(输入两个整数,将它们从小到大输出)
在C++中变量的引用就是变量的别名,引用又称别名。格式:类型&引用名 = 已定义的变量名注意:1 引用不产生新的内存空间2 引用不可重新赋值3 在定义事一定要赋初值,如果在下面赋值就会重新开辟内存空间例:int i; int &j = i;正确 int i; int &j; & j = i;错误#原创 2015-03-06 16:01:40 · 7894 阅读 · 0 评论 -
[c++]派生类与容器类
#includeusing namespace std;class Base{ int x;public: Base(int a) { x = a;//记得给私有成员赋初值,没有的话会是随机值 cout<<"constructing Base "<<x<<endl; } ~Base() { co原创 2015-04-15 13:43:18 · 938 阅读 · 0 评论 -
[c++]友元函数
其中有2个类:一个是深圳类shen_stock,一个是上海类shang_stock,类中有3个私有成员:普通股票个数general,ST股票个数st和PT股票个数pt,每个类分别有自己的友元函数来计算并显示深圳或上海的股票总数(3项的和)。两个类还公用一个函数count(),用来计算深圳和上海总共有多少股票并输出#includeusing namespace std;class shen_原创 2015-04-13 20:45:17 · 1007 阅读 · 0 评论 -
[c++]派生类的构造函数和析构函数
#includeusing namespace std;class Base{ float x; float y;public: Base(float a,float b) { x = a; y = b; cout<<"基类构造函数被调用"<<endl; } ~Base() {原创 2015-04-13 20:16:40 · 484 阅读 · 0 评论 -
[c++]多继承
多继承格式:class 类名:继承方式1 基类1,继承方式2 基类2,........原创 2015-04-15 14:53:58 · 535 阅读 · 0 评论 -
[c++]容器类。继承类的构造和析构
#includeusing namespace std;class Base{ int x;public: Base(int a) { x = a; cout<<"father constructing "<<x<<endl; } ~Base() { cout<<"father destruct原创 2015-04-09 17:34:03 · 655 阅读 · 0 评论 -
[c++]抽象类
如果一个类至少有一个纯虚函数,就称该类为抽象类,目的是用它作为基类去建立派生类。规定:1.抽象类中至少包含一个没有定义功能的纯虚函数,因此,抽象类只能作为其他类的基类来使用,不能建立抽象类对象。2.不允许从具体类(不包含纯虚函数)派生抽象类3.不能函数参数类型,函数返回类型4.可以声明指向抽象类的指针或引用,该指针可以指向他的派生类来实现多态5.关键是定义纯虚函数,只有定义原创 2015-05-15 16:49:56 · 1144 阅读 · 0 评论 -
[c++]继承 多态
继承: 是除了基类的构造函数 ,析构函数 全部继承(私有 也可继承 但不可直接访问)继承方法:public: is-a关系 base private 不可访问 public protected 不变protected: base private protected 都不可访问 public 变为 protected注:protected 不能在类外访问,可在原创 2016-04-09 16:10:23 · 2145 阅读 · 1 评论