C++学习心路
x_y_q_
代码是最为耐心、最能忍耐和最令人愉快的伙伴,在任何艰难困苦的时刻,它都不会抛弃你。
展开
-
重载等号操作符(分析初始化对象和赋值对象的浅拷贝)(进阶3)
首先, 问题抛出#include #include #include using namespace std;class Test{private: char *p; int len;public: Test(const char *myp){ int len = strlen(myp); p = (char *)mal原创 2016-08-16 16:08:37 · 1390 阅读 · 0 评论 -
多继承语法
多继承语法示例#include using namespace std;class Base1{public: Base1(int b1) { this->b1 = b1; } void printB1() { cout<<"b1:"<<b1<<endl; }protected:private: int b1;};class Base2{publ原创 2016-08-23 15:49:28 · 461 阅读 · 0 评论 -
友元函数和友元类
友元函数#include using namespace std;class A{private: int i; friend void FriendFun(A *, int);//说明语句位置没有关系public: void MemberFun(int);};void FriendFun(A *ptr, int x){//友元函数通过对象参数原创 2016-08-12 18:46:53 · 309 阅读 · 0 评论 -
运算符重载入门推演(基础)
运算符重载 使得用户自定义的数据能够更简单的方式工作。实现运算符重载的两种方法:全局函数 和 成员函数 运算符重载基础: 一元运算符重载(全局函数 类的成员函数) 二元运算符重载 前置++原创 2016-08-13 19:44:39 · 453 阅读 · 0 评论 -
成员函数和友元函数 完成二元和一元运算符重载(进阶1)
二元运算符重载:全局函数:#include using namespace std;class Complex{//复数类private: int a; int b; friend Complex operator + (Complex &, Complex &);//注意声明友元函数public: Complex(int a = 0, int原创 2016-08-13 23:02:26 · 1416 阅读 · 0 评论 -
多态与多态案例
多态的思想面向对象3大概念封装: 突破c函数的概念....用类做函数参数的时候,可以使用对象的属性 和对象的方法继承: A B 代码复用多态 : 可以使用未来...多态很重要实现多态的三个条件好比C语言 间接赋值 是指针存在的最大意义是c语言的特有的现象 (1 定义两个变量 2 建立关联 3 *p在被调用函数中去间接的修改实参的值)实现多态的三个条件原创 2016-08-26 09:33:13 · 735 阅读 · 0 评论 -
虚析构函数
#include #include #include using namespace std;//虚析构函数class A{public: A() { p = new char[20]; strcpy(p, "obja"); printf("A()\n"); } ~A() { delete [] p; printf("~A()\n"); }pro原创 2016-08-26 09:52:07 · 281 阅读 · 0 评论 -
重载重写重定义
#include #include #include using namespace std;//重写 重载 重定义//重写发生在2个类之间//重载必须在一个类之间//重写分为2类//1 虚函数重写 将发生多态//2 非虚函数重写 (重定义)class Parent{ //这个三个函数都是重载关系public: void abc() { printf("a原创 2016-08-26 10:42:08 · 320 阅读 · 0 评论 -
继承中的同名成员变量和函数
同名成员函数#include using namespace std;class A{public: int a; int b;public: void get() { cout<<"b "<<b<<endl; } void print() { cout<<"AAAAA "<<endl; }protected:private:};class原创 2016-08-23 15:41:18 · 478 阅读 · 0 评论 -
继承中的构造和析构、继承与组合混搭下的构造和析构
继承中的构造和析构#include using namespace std;class Parent{public: int a; int b;public: Parent(){ cout << "调用了父类的无参构造函数" << endl; this->a = 1; this->b = 2; }原创 2016-08-21 21:17:08 · 320 阅读 · 0 评论 -
数组类小案例(重载 '[]' '=' '==' 和 '!=' 运算符)(进阶4)
原创 2016-08-17 17:05:53 · 275 阅读 · 0 评论 -
友元函数实现左移右移操作符重载(函数返回值当左值需返回引用)(进阶2)
cout 的 #include using namespace std;class Complex{//复数类private: int a; int b; friend void operator << (ostream &, Complex &);public: Complex(int a = 0, int b = 0){ thi原创 2016-08-16 10:48:27 · 1109 阅读 · 0 评论 -
小括号'()'运算符重载、逻辑与'&&'、逻辑或'||'运算符重载说明(需要了解)
重载 '()' 运算符案例 #include using namespace std;class F{public: double operator()(double x, double y);};double F::operator()(double x, double y){ return x * x + y * y;}int main(){原创 2016-08-17 17:09:09 · 1015 阅读 · 0 评论 -
如何自己实现模板类(简单案例——顺序表)
可以将模板类SeqList的定义及成员函数的实现代码全部写到SeqList.h头文件中,则在实例化该类后可进行基本的线性表操作具体的代码怎么写,其实核心就是 template 其中 T 就是一个未知的类型,在写头文件时,变量的类型都用T代替。用户在使用此模板时应该把要使用的变量类型填入进去(可以是基本类型 如 int char 等等 也可以是用户自定义的复杂类型 如 结构体、类)下面是S原创 2016-08-18 10:07:14 · 2395 阅读 · 0 评论 -
构造函数和析构函数
三种构造函数:1.无参构造函数2.有残构造函数3.copy构造函数析构函数构造函数的调用方式:1.隐式(自动调用)2.显式(手动调用)3.copy构造函数的几种调用时机匿名对象的去和留#include using namespace std;class Test{private: int a; int b;public: Te原创 2016-08-08 10:53:51 · 216 阅读 · 0 评论 -
My_String类案例(构造、析构、重载'=' '[]' '<<' '==' '!=' '>' '<' '>>' 运算、操作符以及其他技巧)(重载完结)
这是一个字符串类的小案例头文件 MyString.h#ifndef MYSTRING_H_INCLUDED#define MYSTRING_H_INCLUDED#include using namespace std;//c中没有字符串 (字符串类 c风格的字符串)//空串class MyString{private: int m_len; char *原创 2016-08-17 17:12:35 · 656 阅读 · 0 评论 -
类中的静态成员变量和静态成员函数
在类中定义,用static关键字,定义的静态成员变量可以为所有该类定义的变量所使用(改变)先来看静态成员变量#include using namespace std;class counter{ static int num;//声明与定义静态数据成员public: void setnum(int i) {num = i;}//成员函数访问静态数据成员原创 2016-08-09 17:39:18 · 474 阅读 · 0 评论 -
c++面向对象模型初探(含this指针)
前面学习了静态成员和函数 最后一幅图抛出了一块砖 http://blog.csdn.net/x_y_q_/article/details/52164506 因为我们知道c++是在c的基础上进行拓展的嘛,很多看似高大上的功能其实我们花点时间去想想,去做做试验,便会知晓c++的那帮大牛们是怎么用原有的c语言的面向过程的思维去创造出这个我们看似全新的面向对象的思想理念。所以,我们很自然地会想去揭开原创 2016-08-09 20:07:44 · 397 阅读 · 0 评论 -
const 修饰的是谁
const 修饰一个量,那个量会被放到一个常量表里,无论如何,值都不会被改变了const 修饰指针: int a = 3;int *p = &a;const int *p //指针所指向的内存空间无法被改变,即a的值无法被改变int * const p //指针的值无法被改变,即指针只能指向某一个特定的内存空间,这里只能是 p = &aconst int * const原创 2016-08-10 13:33:23 · 689 阅读 · 0 评论 -
继承的概念、一些基础的语法与类型兼容性原则(基础)
程序员之间的类继承图。。(打个比方)其实,继承就是某一种类与类之间的关系,派生类(子类)中可以继承基类(父类)中的某些属性无论是下面哪一种继承,子类都无法访问或继承父类中的私有属性(private永远是private)protect成员比较特殊,可以在子类中进行访问,但无法被外界访问(可以类比成父亲的银行卡密码,你可以继承,但不能给别人)1. public 继承:原来父类中的(原创 2016-08-21 21:14:23 · 578 阅读 · 0 评论 -
抽象类基本语法
#include using namespace std;////面向抽象类编程(面向一套预先定义好的接口编程)//解耦合 ....模块的划分class Figure //抽象类{public: //阅读一个统一的界面(接口),让子类使用,让子类必须去实现 virtual void getArea() = 0 ; //纯虚函数protected:private:};原创 2016-08-26 21:02:33 · 1230 阅读 · 0 评论