
C++语言
梧桐木木
linux 菜鸟
展开
-
C++文件流操作
头文件:#includeofstream 文件输出流ifstream 文件输入流fstream 通用的文件流(等你打开它时再指定用于输入,输出还是输入和输出)打开文件out.txt若不存在先建立文件out.txt:ofstream fout("./out.txt"); //也可给出out.txt绝对路径,这里是相对路径 ,在默认情况下,被引用的文件来自于当前程序运行的目录,fou原创 2016-06-05 16:24:27 · 2779 阅读 · 0 评论 -
C++类的副本构造器之深复制(拷贝)与浅复制(拷贝)
副本构造器可实现将一个对象复制到另一个对象,可用point n(3);point p(n);实现对象的赋值。在这里,赋值包括两种,一种是浅复制,一种是深复制。所谓浅复制是两个对象指向同一块内存,即对象p和n的成员变量指向同一块int型的内存。代码如下:class point{private:int *y;public:point(int y);point();原创 2016-06-11 22:41:37 · 1747 阅读 · 0 评论 -
C++继承三
http://blog.youkuaiyun.com/jackystudio/article/details/17877219原创 2016-06-15 17:46:14 · 383 阅读 · 0 评论 -
C++继承二
子类继承基类后,若子类中有和基类同名的函数,不管参数是否一致,基类的函数就会被隐藏。需要显示调用函数的范围。#include#include#includeusing namespace std;class CB{ public: void f(int){ cout << "CB::f(int)" << endl; } void ff(){ cout<<"CB::f原创 2016-06-14 22:24:57 · 515 阅读 · 0 评论 -
C++ 副本构造器
编译器会自动提供一个副本构造器,如果用户编写了副本构造器编译器也不会收回自己提供的副本构造器。副本构造器在如下情况会被自动调用:1.当某个函数的返回值的类型是某个类的时候,该函数将创建一个该类对象的副本并把后者返回给自己的调用者。2.当某个输入参数的类型是某个类的时候,系统将为该输入参数创建一个副本并将其传递到函数里去3.当用户使用某个对象去初始化另一个对象时。point a(原创 2016-06-10 18:10:05 · 1872 阅读 · 0 评论 -
C++对类的二进制文件存储与显示
#include#include#includeusing namespace std;class Item{ char partCode[5]; char descrip[20]; int num; float price ;public: static int count; Item(){partCode[0]='\0';} Item(char P[],char D[]原创 2016-06-29 20:59:30 · 1733 阅读 · 0 评论 -
C++继承之构造析构函数调用
虚基类子对象是由最派生类的构造函数通过调用虚基类的构造函数进行初始化的.最派生类是指在继承结构中建立对象时所指定的类.在派生类的构造函数的成员初始化列表中,必须列出对虚基类构造函数的调用,如果没有列出,则表示使用该虚基类的缺省构造函数.在虚基类直接或间接派生的派生类中的构造函数的成员初始化列表中,都要列出对虚基类构造函数的调用.但只有用于建立对象的最派生类的构造函数调用虚基类的构造函数,而该派生类原创 2016-06-24 17:11:28 · 1057 阅读 · 0 评论 -
C++ 虚函数表解析
http://blog.youkuaiyun.com/haoel/article/details/1948051转载 2016-06-27 15:39:09 · 369 阅读 · 0 评论 -
C++类赋值(=)操作符
如果用户没有编写赋值操作符函数,编译器就会自动为用户创建一个。这就是为什么用户可以实现p1=p2,为类赋值。语法:类名 &operator=(const 类名 &source_arg)说到这里,便想起来之前提到的副本构造器,用到副本构造器的地方其中之一是用某个对象去初始化另一个对象时。point a(1,2); point b(a);赋值操作符函数看起来似乎和副本构造器很像,同样都是简原创 2016-06-11 16:46:29 · 10523 阅读 · 0 评论 -
C++分配/释放动态内存
int n;int *p=&n;这两条语句创建了静态数据,内存的分配方式是静态分配。在C++中用new来动态分配内存,得到分配内存的首地址(C中是malloc系统函数),用new分配的内存在使用完之后要释放(delete),否则造成内存泄露。1.分配一个某类型长度对应的内存,如int型 也可以时char double,类 删除:delete 指针int *p; p=new int;或i原创 2016-06-11 18:01:36 · 705 阅读 · 0 评论 -
C++operator<<函数
让class point{public:int x;private:int y;public:point(int x,int y){this->x=x;this->y=y;}point(){x=0;y=0;}point &operator=(const point &other){this->x=other.x;this->y=other.y;ret原创 2016-06-11 17:01:26 · 4714 阅读 · 0 评论 -
C++操作符重载
操作符可以重载,操作符的重载解决了各种类型操作。比如,一般类型+类 ,类+一般类型 ,类+类,类+类+一般类型+类等。操作符的重载和一般成员函数的重载格式并没有不同。1.当处理混合运算时,安装运算符优先顺序来,“+” ,“-” ,“*”,"/"等这几个算术运算优先级在类中也是如此。2.用引用(&)可以提供效率,以下几个操作符函数均用引用。const关键字防止传递的输入参数被意外修改。原创 2016-06-11 15:49:41 · 554 阅读 · 0 评论 -
C++操作符函数
操作符函数语法:返回类型 operator操作符(参数列表)操作符可以+ - * % /等运算符,这些操作符作为类操作符使用时仍然遵守它们被用作普通操作符时的优先级规则。返回类型可以是对象,也可以是一般类型。操作符函数可以定义为类的成员函数也可以定义为全局函数。作为成员函数和全局函数的意义是不一样的。1.如果操作符函数声明为成员函数,调用该函数的对象将成为左操作数。当操原创 2016-06-10 22:33:16 · 2175 阅读 · 0 评论 -
C++之重载重写重定义
一 重载(overload)概念:函数有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数之间,互相称之为重载函数。基本条件:函数名必须相同;函数参数必须不相同,可以是参数类型或者参数个数不同;函数返回值可以相同,也可以不相同;注意:只能通过不同的参数样式进行重载,例如:不同的参数类型,不同的参数个数,转载 2016-06-27 11:22:40 · 1110 阅读 · 0 评论 -
C++之类简介
类中的公有函数成员,可以看成类与外部交互的接口,外部代码通过公有函数成员来访问这个类里的数据,或者通过公有函数间接访问类私有函数(公有函数调用私有函数);私有函数成员:可以看成是类为自己准备的辅助函数,不可以被类外部代码访问,只能被类内函数访问。私有成员变量:只能被类内函数访问(通过访问公有函数可获取其值)。总之,外部->公有函数->私有函数/公有函数/私有变量/公有变量;类的函数原创 2016-06-09 18:16:58 · 542 阅读 · 0 评论 -
C++ 构造器
C++构造函数称为构造器。构造器必须是公有的,若是私有的,编译会报错,因为在用户编写了构造函数后,编译器就不会再默认的构造函数初始化对象,而是用用户编写的构造器初始化对象,若用户编写的构造器为私有的,便会出现错误。1.构造器是public的2.构造器可以为内嵌函数3.构造器可重载4.构造器无返回值5.构造器名和类名必须一致6..在类中声明构造器,类外定义构造器格式:类名::原创 2016-06-10 17:51:34 · 1015 阅读 · 0 评论 -
内存对齐详解
原文:http://www.voidcn.com/blog/u013593585/article/p-5761676.htmlhttp://mrcelite.blog.51cto.com/2977858/1757575内存地址对齐,是一种在计算机内存中排列数据(表现为变量的地址)、访问数据(表现为CPU读取数据)的一种方式,包含了两种相互独立又相互关联的部分:基本数据对齐和结构转载 2016-06-26 16:20:09 · 459 阅读 · 0 评论 -
C++继承
C++的三种访问级别:public :public的成员运行任何函数访问,不管他们是不是这个类的一部分protected:protected成员只允许这个类本身及其子类成员函数访问private:private成员只允许这个类本身的成员函数访问父类中的所有成员,被子类继承以后,除了父类的构造器不能被继承外,其他函数,子类都会被继承,都可直接或间接的访问。对于公有成员,pub原创 2016-06-14 20:32:22 · 419 阅读 · 0 评论