IWayne 发表于 2016-5-5 14:03

【笔记】C++结构体 和类 ------新手来看看 大神勿喷

本帖最后由 奋斗丶小Z 于 2016-6-6 13:45 编辑

#include <iostream>
using namespace std;

struct father
{
    /*
    virtual bool set() = 0;
    virtual bool get() = 0;
    */
   
    virtual bool set(int a, int b) = 0;
    virtual bool get(int a, int *b) = 0;
   
};
struct jack :public father
{
    int x;
    int y;
    bool set(int a, int b);
    bool get(int a,int *p);

};

struct mack :public father
{
    int x;
    int y;
    bool set(int a, int b);
    bool get(int a, int *p);
};

struct mackson :public mack
{
    int x;
    int y;
    bool set(int a, int b);
    bool get(int a, int *p);
};
bool jack::set(int a, int b)
{
    x = a;
    y = b;
    if (a == x && b == y)
      return true;
    else
      return false;
}
bool jack::get(int a,int *p)
{
    if (0 == a)
    {
      p = &x;
      return true;
    }
    else if (1 == a)
    {
      p = &y;
      return true;
    }
    else
      return false;
}

bool mack::set(int a, int b)
{
    x = a;
    y = b;
    if (a == x && b == y)
      return true;
    else
      return false;
}
bool mack::get(int a, int *p)
{
    if (0 == a)
    {
      p = &x;
      return true;
    }
    else if (1 == a)
    {
      p = &y;
      return true;
    }
    else
      return false;
}

bool mackson::set(int a, int b)
{
    x = a;
    y = b;
    if (a == x && b == y)
      return true;
    else
      return false;
}
bool mackson::get(int a, int *p)
{
    if (0 == a)
    {
      p = &x;
      return true;
    }
    else if (1 == a)
    {
      p = &y;
      return true;
    }
    else
      return false;
}

int main()
{
   
    father *p1;
    int a=0;
    bool (father::*pf)(int a, int b) = 0;
    bool (father::*pb)(int a, int *b) = 0;

    p1 = new jack;

    pf = &father::set;
    pb = &father::get;

    (p1->*pf)(5,6);
    (p1->*pb)(1, &a);
    cout << a << endl;



    return 0;
}

这是 C++结构体 实现的 重载,多重继承,多态,虚基类,抽象类,类成员指针
主要是为了 让大家更好认识C++结构体和类的区别

看到此贴感觉太小儿科 请高抬贵手 千万别骂。右上角就行吧。。

IWayne 发表于 2016-5-6 05:33

lytalyt 发表于 2016-5-6 03:59
C++还学的不是很深似懂非懂,楼主能解释下吗?

里面主要的难点是类成员指针 是纯虚函数和抽象类的概念。
我的理解是 C++难 主要分为两大部分
第一部分 就是 对象编程。
第二部分 我觉得是真难 前面真不算什么
那就是STL。 标准C++库。包含大量算法 容器 模板

IWayne 发表于 2016-5-6 05:26

lytalyt 发表于 2016-5-6 03:59
C++还学的不是很深似懂非懂,楼主能解释下吗?

行。我看很多人 都喜欢看 破解的帖子 编程的内功心法从来不过问。 舍本逐末。

这个 结构体 相当于是一个完全 public 的 对象。

对象有 三种 方式 public pirvate 和 保护的[那个单词太长 我不在编程环境下 打不出]

chrisu 发表于 2016-5-5 17:59

支持下楼上的

_Max1 发表于 2016-5-5 23:48

{:301_1003:}支持支持呦.好晚了,睡觉.

wangqiustc 发表于 2016-5-5 23:57

思路很清晰啊,学习学习

lytalyt 发表于 2016-5-6 03:59

C++还学的不是很深似懂非懂,楼主能解释下吗?{:301_999:}

lytalyt 发表于 2016-5-6 21:52

吾愛じ啃飯團ジ 发表于 2016-5-6 05:33
里面主要的难点是类成员指针 是纯虚函数和抽象类的概念。
我的理解是 C++难 主要分为两大部分
第一部分 ...

我先收藏了 等学到这部分内容我再来体会一下

IWayne 发表于 2016-5-6 22:01

lytalyt 发表于 2016-5-6 21:52
我先收藏了 等学到这部分内容我再来体会一下

老师不教的。 我自己的总结,

lytalyt 发表于 2016-5-7 16:48

吾愛じ啃飯團ジ 发表于 2016-5-6 22:01
老师不教的。 我自己的总结,

我在看视频自学呢{:301_1004:}
页: [1] 2
查看完整版本: 【笔记】C++结构体 和类 ------新手来看看 大神勿喷