zoukankan      html  css  js  c++  java
  • 类内数组声明,“类外”指定大小

    类内数组声明,“类外”指定大小

    1. using namespace std;

    2. class Age{

    3.     public:
    4.         static const int Value = 10;
    5.         static const int ages[];

    6. };

    7. const int Age::ages [] = {1,2,3};


    8. int main()
    9. {
    10.     cout << "xxx Age:" << Age::Value <<
    11.        "ages size:"<< sizeof(Age::ages)<< endl;
    12. }

    首先说明:
    1,c++可以在类的声明的时候指定值:但是是有条件的:static const 修饰。保证是class级别的,并且不可修改。
    2, ages的声明是在类体内的,具体化是在外面的。为什么是可以对呢,而int的Value是不可以的,又是为什么呢。

    谈谈我的认识:

    1, static是class 级别的,所以只有一份在程序级别的栈中,所以我们对象可以有很多份,而static的只有一份。
    2, 既然是clss 级别的,值如果是设置的初始值,就不能被其他对象修改,使用了const修饰,就可以使用::域操作来访问。
         如果不设置初始值,存储级别是class的, 访问级别就是对象级别的了.
    3, 基本类型int不能像数组(指针)一样在类体外初始化,至于为什么,我猜测是基本类型是经过一步就完成了值和地址的确认,而复杂类型,比如说是数组(指 针),经过第一步只是确认了指针的值(所指位置)以及存储这个指针的地址,并没有初始化好分配多少内存,第二步确认分配的内。第一步在预编译完成,第二步 在编译阶段完成,有待验证。
  • 相关阅读:
    提升开发效率的十个工具
    JQuery常用函数及功能小结
    jquery-validation 学习总结
    JavaScript:避免代码的重复执行
    18 个最好的CSS框架用于提高开发效率
    如何书写高质量的jQuery代码
    13个 ASP.NET MVC 的扩展
    CSS_LESS 语法/函数详解
    21个值得收藏的Javascript技巧
    JQuery常用功能的性能优化
  • 原文地址:https://www.cnblogs.com/timssd/p/4781147.html
Copyright © 2011-2022 走看看