在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3767|回复: 0

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

[复制链接]
发表于 2015-11-14 18:34:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 tjaiwxc 于 2015-11-14 19:55 编辑

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; //常成员函数, 常成员函数是不能改变其所在类中成员变量值的函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-26 20:47 , Processed in 0.022181 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表