分享

IAR写的C 程序,不知道构造函数如何让位变量指向端口? (amoBBS 阿莫电子论坛)

 昵称32542257 2016-04-18
/************************************
初学C++,这是个测试程序,设计的想法是,把最普遍的IO口,作一个对象来看待。
指定一个端口,构造一个端口对象
*************************************/
#include

class Led{
private:
        bool LED_IO;  //位变量,但如何指向构造函数的参数。
public:
        Led(bool b){  //此处怎样写,让LED_IO 指向b(即P3_bit.P3_0)               
        }
        void on(){
                LED_IO=1;
        }
        void off(){
                LED_IO=0;
        }       
};

void delayms(int ms){
        while(ms--)
                for(int i=0;i<>
}

int main(){
        Led led1(P3_bit.P3_0);
        while(1){
                led1.on();
                delayms(100);
                led1.off();
                delayms(100);
        }
}

这样写,不是为了标新立异,是想从这里开始把MCU所有内部资源作为对象的方式编程。但构造函数不知道如何写,才能把LED_IO与P3.0等同起来。对LED_IO的操作可以影响P3.0.

51的sfr都是直接寻址,想直接传个sfr的指针是不行的, 要想写个通用的'类', 你只能传仿函数或函数指针进去,建议你先G搜索一下仿函数和函数指针,自己试着写一下先。


另外,面向对象需要谨慎,这玩意很容易导致过度设计,而忽略数据结构和算法,我个人除了在GUI中部分使用面向对象,其它地方我还真用不上。
面向对象在C++里面的地位早也就固定了,决定不再新增新的面向对象特性进去了,现在的C++是一种多泛型语言。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多