学习SystemC应具备的C++基本语法

学习SystemC应具备的C++基本语法

  1. class
    class是对类型的变量、方法的定义原型 对象是类的实例化;
    类由两部分组成。类声明:以数据成员的方式描述数据部分,以成员函数(方法)的方式描述接口;类方法定义:描述类成员函数的具体实现
    类声明提供了类的蓝图,而类方法定义提供了类的行为细节;
    类实现了数据和行为细节的对外封装;

  2. constructor and destructor
    构造函数是一个与类同名的共有成员函数,没有返回值类型,即使void也不行;
    构造函数可以重载,即一个类可以有多个构造函数;
    若类没有显式构造函数,编译器会自动生成一个空的构造函数;
    若构造函数的参数需要默认值,则只能在声明中提供。当既有声明又有定义时,定义中不能出现默认值。若函数只有定义,则默认参数才可出现在定义中;
    若构造函数的参数列表中有一个默认值,那么这个参数右侧所有参数必须要有默认值;
    若一个构造函数所有参数都有默认值,其他构造函数将失效;

  3. return from function
    函数return值的方式与函数初始化一个变量或形参的方式完全一样:返回的值用于初始化调用点的一个临时量,该临时量就是函数的返回结果;
    函数返回一个对象时,会自动调用类的构造函数;
    能否返回函数的一个局部变量?可以通过值拷贝的方式返回函数的一个局部变量;
    千万不要通过引用、指针方式返回函数的局部变量、局部对象;
    一旦函数调用完成,函数栈中的局部对象空间会被释放,指针和引用将指向一个不存在的对象;
    如果函数返回指针、引用或类的对象,我们就能够使用函数调用的结果访问结果对象的成员;

  4. dynamic memory allocate and release
    不要使用delete来释放不是new分配的内存;
    不要使用delete同一内存块两次;
    使用new[]为数组分配内存,则应使用delete[]释放;
    使用new为一个实体分配内存,则应使用delete释放;
    对空指针使用delete是安全的;

  5. template class
    模板不是一个类;
    模板是C++编译器指令,说明了如何生成类和成员函数定义;
    不能将模板成员函数放在独立的实现文件中;
    一个模板可以作为另一个模板的参数;

  6. public, private and protected
    public与private、protected的区别;
    在类外可以直接访问类中public成员,但只能通过public成员函数间接访问类中private、protected成员;
    private与protected的区别;
    派生类的成员可以直接访问基类的protected成员,但不能直接访问基类的private成员;

  7. polymorphism
    多态,是面向对象的程序设计语言最核心的特征。多态,意味着一个对象具有多重特征,从而对应着不同的属性和方法,即一个实体同时具有多种表现形式;
    同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用派生类的方法;
    在C++中,实现多态有以下方法:虚函数、抽象类、覆盖、模板;
    重载与多态是完全不同的两个概念;

  8. overload
    重载体现了一物多用的思想,它只是编程语言提供的一种机制,与OOP无关;
    函数重载:在相同的声明域中的函数名相同的、而参数列表不同的,即通过函数的参数表而唯一标识并且来区分函数的一种方法;
    操作符重载:可使运算符处理不同类型数据的一种方法;如“<<”和“>>”即可以作为移位运算符,又可以作为输出流中的插入运算符和输入流中的提取运算符;

  9. const
    const定义常量时,同时定义了常量的类型。而#define只是简单的文本替换,除了可以定义常量外,还可以用来定义一些简单的函数,有点类似内联函数(inline);
    用于指针,const是一个左结合的类型修饰符;
    int const *A; //A可变,*A不可变
    int *const A; //A不可变,*A可变
    限定函数的传递值参数:
    void function(const int &var); //传递过来的参数在函数内不可以改变.
    限定函数返回值型:
    const int function();
    const myclassname function();
    限定函数类型
    void function() const; //常成员函数, 常成员函数是不能改变其所在类中成员变量值的函数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容