C与C++部分不同(非面向对象部分)

//作者:ylotttt

//来源:http://blog.csdn.net/ylotttt/

C++中特有的:

1、内联函数

2、重载函数

3、默认参数的函数

4、结构的访问控制:

  类定义中默认情况下的成员是private,而结构定义中默认情况下的成员是public的。(确切的说这是C++中类与结构的区别,而且这一部分也涉及到了面向对象的内容)。

  在VC6.0下可以定义如下结构体,并申明友元函数、类。

struct test
{
    public:int a;
    private:int b;
    protected:int c;
    friend void testFuc();
}temp;

void testFuc()
{
    temp.a = 3;
    temp.b = 4;
    temp.c = 5;
}

 

C/C++不同的:

5、结构对象的说明方法:

  struct Savings a;(C)。

  Savings a;(C++)。

 

C/C++中基本概念:

6、常量

    C中:

    常量类型

        1 整形常量。

        2 字符常量。

        3 浮点常量。 

        4 枚举常量。

      表现形式

        1 直接以文本形式给出的(数字、字符)。

        2 enum定义的。

        3 define定义的(我认为预处理完后视同1。这里存在问题,预处理不进行类型检查。c中默认的都以int型来处理。define定义的东东不会加入到符号列表。注意define与inline的区别联系)

        注意:const是类型限定符,修饰类型区分符(即类型,如int)。也就是说const修饰的是变量,说明此变量不可更改,如同常量一样(这里有很多人误解。其另一层含义可理解为“此变量不能通过变量名来修改其所对应的内存空间的值”。更进一步,此变量不能用其变量名做左值来修改)。如果试图修改const限定的值,所产生后果取决于具体实现(编译器)。

        有的人认为(或者有的书写到)“const修饰后在程序的任意位置再不可修改”。其实这也是一种误解,不全面。“const修饰后在程序的任意位置再不可修改”是指不能用其名显示做左值来修改,编译器会检查其做左值的情况而不会关心它出现几次(个人认为)。所以其值是可以修改的,只是要耍手段,如通过访问地址修改。而这种修改与给这个const了的变量赋值是两个完全不同的概念和动作,虽然都改变了内存空间内的值(细细体会)。

    C++中:

     大体同上,但在C++中提倡使用const,屏弃#define的使用。

问题:

1、常量是与执行代码一起分配存储?Where?When?

2、常量分配在只读存储区?Where?When?

3、常量、全局变量、静态数据存放在全局数据区?

4、enum常量通过地址是否可修改?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值