打印

使用C++完成你的设计

[复制链接]
3633|36
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
keer_zu|  楼主 | 2014-9-9 19:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前一直在学习和实践用C完成面向对象的设计,然而C毕竟不容易实现类似继承和多态。采用C++是可行的,以为现在即使MCU都有对C++支持的编译器;采用C++是方便的,因为他直接支持了面向对象的特性,是实现面向对象设计的好工具。
然而C++被称作世界上最难的一门语言,从接触不深的个人体会是:语法很容易,真正用起来也不难,难就难在如何用它的诸如:继承、虚函数、泛型等概念实现你的面向对象的、可复用的、可扩展的、高效的、方便维护的、类和对象更合理的。。。。。。程序,这才是难点,然而一切不是一蹴而就的,这需要一个过程,需要实践和思考。  好吧,我也是菜鸟,一起启程吧?!

相关帖子

沙发
nbsmaps| | 2014-9-9 21:09 | 只看该作者
我一直想学,仅是想学点串口编程的,好调试单片机,一直学不会.苦脑中.....

使用特权

评论回复
板凳
wangguiyuan1983| | 2014-9-14 19:11 | 只看该作者
什么也没有啊!!!!!

使用特权

评论回复
地板
keer_zu|  楼主 | 2014-9-15 10:22 | 只看该作者
wangguiyuan1983 发表于 2014-9-14 19:11
什么也没有啊!!!!!

最近忙,一步一步来

使用特权

评论回复
5
diweo| | 2014-9-15 11:00 | 只看该作者
个人认为在嵌入式控制中,只要用到封装、继承、多态就够了。
模板、泛型什么的就不要用了,因为太耗资源。

另外,我非常喜欢C++ 11中的枚举类型:lol

使用特权

评论回复
6
keer_zu|  楼主 | 2014-9-15 15:12 | 只看该作者
diweo 发表于 2014-9-15 11:00
个人认为在嵌入式控制中,只要用到封装、继承、多态就够了。
模板、泛型什么的就不要用了,因为太耗资源。
...

个人看法:不管是C++,亦或是Java,语法学起来很快,但是怎么使用它,在你的项目中什么时候用到继承,哪些成员函数放在父类,哪些放在派生类;哪些给予public属性,哪些给予protecte属性,哪些给予private属性; 哪些类需要作为抽象类;什么情况下使用泛型等等。不是一朝一夕可以搞明白的。

使用特权

评论回复
7
diweo| | 2014-9-15 15:54 | 只看该作者
我上传一个资料吧,希望对有兴趣的朋友有用。

Effective C++ in an Embedded Environment.pdf

3.04 MB

使用特权

评论回复
8
keer_zu|  楼主 | 2014-9-15 16:02 | 只看该作者
我也共享一个: C Primer第四版中文版.pdf (2.84 MB)

使用特权

评论回复
9
keer_zu|  楼主 | 2014-9-15 16:08 | 只看该作者
diweo 发表于 2014-9-15 15:54
我上传一个资料吧,希望对有兴趣的朋友有用。

还没仔细看,貌似很不错啊

使用特权

评论回复
10
le062| | 2014-9-15 23:38 | 只看该作者
资料不错

使用特权

评论回复
11
keer_zu|  楼主 | 2014-9-22 12:04 | 只看该作者

从一个抽象类,多级继承后,函数的调用:


class grand_c{

public:
        grand_c();
        virtual ~grand_c() {}
        char c;
        virtual int test_1() = 0;
};

grand_c::grand_c()
{
        std::cout << "creat gc\n" << std::endl;
}



class father_c:public grand_c
{
       
public:
        father_c();
        virtual ~father_c() {}
       
        int a;
//        private:
//                int  test_1(){ std::cout << "child" << std::endl;}
};

father_c::father_c()
{
        std::cout << "creat fc\n" << std::endl;
}




class child_c:father_c//:pablic  father_c
{
//public:
//        int no;

public:
        child_c();
        virtual ~child_c() {}
private:
       
        int  test_1(){ std::cout << "child" << std::endl;}

};

child_c::child_c()
{
        std::cout << "creat cc\n" << std::endl;
}

int main(void)
{

        grand_c *gc;
        child_c cc;
        gc = (grand_c *)(&cc);
        gc->test_1();
}

使用特权

评论回复
12
keer_zu|  楼主 | 2014-9-25 10:55 | 只看该作者
下面的程序,你能给出它的执行结果吗?

class grand_c{

public:
    grand_c();
    virtual ~grand_c() {}
    char c;
    int f1(){printf("f1: grand_c \n");}
    virtual int test_1() = 0;
};

grand_c::grand_c()
{
    std::cout << "creat gc\n" << std::endl;
}



class father_c:public grand_c
{

public:
    father_c();
    virtual ~father_c() {}
    int f1(){printf("f1: father_c \n");}
    int a;
private:
    int  test_1(){ std::cout << "father" << std::endl;}
};

father_c::father_c()
{
    std::cout << "creat fc\n" << std::endl;
}




class child_c:father_c//:pablic  father_c
{
//public:
//  int no;

public:
    child_c();
    virtual ~child_c() {}
    int f1(){printf("f1: child_c \n");}
private:

    int  test_1(){ std::cout << "child " << std::endl;/*printf("%s:%d\n",__FUNCTION__,__LINE__);*/}

};

child_c::child_c()
{
    std::cout << "creat cc\n" << std::endl;
}



int main(void)
{
grand_c *gc;

    child_c cc;

    father_c fc;

    gc = (grand_c *)(&cc);

    gc->test_1();

    gc->f1();

    gc =  (grand_c *)(&fc);

    gc->f1();

    gc->test_1();
}


使用特权

评论回复
13
keer_zu|  楼主 | 2014-9-25 10:57 | 只看该作者
keer_zu 发表于 2014-9-25 10:55
下面的程序,你能给出它的执行结果吗?

class grand_c{

creat gc

creat fc

creat cc

creat gc

creat fc

child
f1: grand_c
f1: grand_c
father

使用特权

评论回复
14
sxhhhjicbb| | 2014-9-25 12:31 | 只看该作者
偶07年毕业,公司开发的项目已经是在mcu下使用c++。

使用特权

评论回复
15
keer_zu|  楼主 | 2014-9-25 12:56 | 只看该作者
sxhhhjicbb 发表于 2014-9-25 12:31
偶07年毕业,公司开发的项目已经是在mcu下使用c++。

能否和大家分享一点。什么MCU,什么开发工具?做什么样的项目?

使用特权

评论回复
16
keer_zu|  楼主 | 2014-9-25 15:24 | 只看该作者

使用特权

评论回复
17
keer_zu|  楼主 | 2014-10-22 14:31 | 只看该作者

使用特权

评论回复
18
keer_zu|  楼主 | 2014-10-22 14:31 | 只看该作者

使用特权

评论回复
19
keer_zu|  楼主 | 2014-10-22 14:38 | 只看该作者

使用特权

评论回复
20
keer_zu|  楼主 | 2014-10-24 10:19 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群:49734243 Email:zukeqiang@gmail.com

1352

主题

12436

帖子

53

粉丝