精华内容
下载资源
问答
  • 空间命名的定义及使用:using namespace std 的用法详解 所谓命名空间,实际上就是一个由程序员命名的内存区域,程序员可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而将其与其它...

    空间命名的定义及使用:using namespace std 的用法详解

    所谓命名空间,实际上就是一个由程序员命名的内存区域,程序员可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而将其与其它的全局变量分开。

    例如

    namespace dog; //定义空间名为 dog
    
    {
    	   	int a;
    		double b;
    }
    

    在这里,namespace 是定义命名空间所必须写的关键字,dog是指定命名空间的名称,括号内则是命名空间中的成员,虽然在花括号内,但也是全局变量。

    如果程序要使用这两个成员,就必须加上命名空间名和作用域分辨符“ :: ”,如dog::a,dog::b。
    ————

    1、通俗理解

    为了方便理解,这里通过计算机文件夹目录的功能加以解释。

    在计算机的目录中,虽然很多文件名一样,但由于存在于不同的文件夹内,因此在调用和使用的时候,并不会产生冲突。只需要在使用的时候,将文件夹目录,也就是文件路径表示清楚就可以了。这和命名空间其实就是一个道理,就是建立一个全局实体变量作用域,避免名字上的冲突。
    ————

    2、具体使用

    在使用的时候,我们可以在命名空间中指定变量,函数,结构体,类,模版等,也可以指定另一个命名空间(嵌套)。

    例如

    *namespace dog1*
    *{
    		const int Gate = 0.66;
    		double Pay;
    		double tax()
    		{
    				return a×Gate;
    		}
    		namespace do
    		{
    				int Wolf;
    		}
    }*
    

    在输出命名空间dog1中的成员数据时,可以采用以下方法:

    cout << dog1::Gate << endl
    cout << dog1::Pay << endl
    cout << dog1::tax() <<endl
    cout << dog1::do::Wolf << endl
    

    ————

    3、using namespace std

    这里的“using”其实就是命名空间的声明,在程序开头进行声明,在后续编程的时候,就不用反复使用“ std::cin ”,“ std::cout ”,“ std::endl ”了,而可以直接使用“ cin >> ”,“ cout << ” 和 “ << endl ”了。

    例如

    输出一段文字:“Hello China!!!”

    常规情况下,需要这样编辑语句:

    std::cout << "Hello China !!!" << std::endl;
    

    声明命名空间以后,就可以这样:

    cout << "Hello China!!!" << endl;
    

    好了,空间命名的大致内容就是这些,欢迎大家留言探讨!

    展开全文
  • 今天在使用名称绑定语言NaBL时候,解决了命名定义和声明的命名校验问题。 语言场景是这样,一个源文件定义了app(应用),具有唯一id。定义诺干个dataset(数据集)并且声明对应app id,但是dataset可以在...

    今天在使用名称绑定语言NaBL的时候,解决了命名定义和声明的命名校验的问题。

    语言场景是这样的,一个源文件定义了app(应用),具有唯一id。定义诺干个dataset(数据集)并且声明对应的app id,但是dataset可以在多个文件中,dataset无id,dataset下有诺干data model(entity、webpage),data model在app的命名范围下具有唯一id。

    关键语法定义的SDF片段:

    "app" ID Dataset -> AppDecl{"AppDecl"}
    "app" ID Page -> AppDecl{"AppDecl"}

    先贴出正确的NaBL解决方法:

    module names
    
    imports
    
    include/SmartX
    
    namespaces
      App AppRef
      DataModel DataModelProperty
      Page
    rules
      App(appId, pageId) : 
        defines unique App appId
        refers to Page pageId in AppRef appId
      AppDecl(appId, _) : 
        refers to App appId//声明定义
        defines unique AppRef appId//声明临时引用命名空间
        scopes DataModel, Page//DataModel,Page在App命名空间作用范围下
      Entity(e, _): 
        defines unique DataModel e
      Webpage(w, _, _, _): 
        defines unique DataModel w
        scopes DataModelProperty
      Property(_, x, _, _): 
        defines unique DataModelProperty x 
      Page(pageId, _, _, _, _, _, _, _):
        defines unique Page pageId

    查阅了NaBL的官方文档,本来以为会有直接的方法,但是为了实现应用定义和应用下属页面和数据集定义在不同的文件(不同解析树),不能直接使用scopes子句定义应用的子命名空间。因此,我的解决方案是定义一个AppRef临时的命名空间,重点在于以下片段:

      AppDecl(appId, _) : 
        refers to App appId//声明定义
        defines unique AppRef appId//声明临时引用命名空间
        scopes DataModel, Page//DataModel,Page在App命名空间作用范围下

    详细解释一下三个从句,第一句,表示从App命名空间中引用命名appId;第二句,定义新的命名空间AppRef,虽然功能实现了,但这句有一点非常令我费解,使用unique和non-unique并无区别, 都可以重复引用(符合当前需求);第三句,和官方文档上用法一致,使得 DataModel, Page在AppRef的命名空间下,这句从句必须紧跟defines 从句之后,表示在AppRef命名空间下。


    问题解决了,回顾解决思路,引入AppRef命名空间,在AppRef下定义命名空间,引入中个中级命名空间最主要的原因是app id定义和声明在不同的解析树中(跨文件)。

    展开全文
  • js变量的命名定义规则

    万次阅读 2017-05-22 23:34:18
    一、变量的定义 1、变量是用于存储信息的"容器",是命名的内存空间,可以使用变量名称找到该内存空间。 2、JavaScript 的变量是松散类型(弱类型)的,所谓松散类型就是用来保存任何类型的数据。在定义变量的时候不...
    一、变量的定义
    1、变量是用于存储信息的"容器",是命名的内存空间,可以使用变量名称找到该内存空间。
    2、JavaScript 的变量是松散类型(弱类型)的,所谓松散类型就是用来保存任何类型的数据。在定义变量的时候不需要指定变量的数据类型。
    3、定义变量时要使用 var 操作符(var 是关键,表示的变量),后面跟一个变量名(变量名是标识符)。
    格式:var 变量名;  
    4、变量定义完成后,可以存储任意类型的数据。


    二、变量的命名规则
    变量可以使用短名称,如x,y;也可以是长名称,如information,construction
    变量命名规则如下:
    1、变量命名必须以字母、下划线”_”或者”$”为开头。其他字符可以是字母、_、美元符号或数字。
    2、变量名中不允许使用空格和其他标点符号,首个字不能为数字。
    3、变量名长度不能超过255个字符。
    4、变量名区分大小写。(javascript是区分大小写的语言)
    5、变量名必须放在同一行中
    6、不能使用脚本语言中保留的关键字、保留字、true、false 和 null 作为标识符。
    截止到目前为止JS描述了一组具有特定用途的关键字,一般用于控制语句的开始或结束,或者用于执行特定的操作等。关键字也是语言保留的,不能用作标识符。if for switch  case  break  continue  while  var  function


    定义变量的格式:
    var  变量名;
    var  变量名=初始值;  //初始值不受数据类型的限制


    例如:
    var name; 声明了一个变量name
    var name = "tony";       name表示名字,值为“tony”,数据类型为字符串;
    var age = 27;            age表示年龄,值为27,数据类型为number;
    var girlFriend = false;     girlFriend表示女盆友,值为否,数据类型为布尔值;
    var fn = function(){};  fn表示一个方法,值为一个函数,数据类型为对象;


    (1)“=”表示赋值运算符,将“=”右边的变量、常量、表达式的值赋给“=”左边的变量
    (2)定义变量的同时,可以为该变量赋一个初始值。


    例题:分别定义姓名,年龄和性别变量,并赋初始值,将其输出到页面中。
    <SCRIPT type="text/javascript">
      var xm="张三";
      var age=20;
      var sex="男";
      var isEducated=false;
      document.write(xm,age,sex,isEducated);
    </script>
    注意:变量名两端不能加引号。




    例题:分别定义姓名,年龄和性别变量,并赋初始值,将其输出到无序列表中。
    (1)方式一
    <SCRIPT type="text/javascript">
      var xm="张三";
      var age=20;
      var sex="男";
      var isEducated=false;
      document.write("<ul>");
      document.write("<li>",xm,"</li>");
      document.write("<li>",age,"</li>");
      document.write("<li>",sex,"</li>");
      document.write("<li>",isEducated,"</li>");
      document.write("</ul>");
    </script>


    (2)方式二
    <style type="text/css">
    #info{
    border: 1px red solid;
    }
    </style>
    <body>
    <ul id="info">
    <SCRIPT type="text/javascript">
     var xm="张三";
     var age=20;
     var sex="男";
     var isEducated=false;
     document.write("<li>",xm,"</li>");
     document.write("<li>",age,"</li>");
     document.write("<li>",sex,"</li>");
     document.write("<li>",isEducated,"</li>");
    </script>
    </ul>
    </body>


    (3)方式三


    <body>
    <ul id="info"></ul>
    </body>
    </html>
    <SCRIPT type="text/javascript">
     var xm="张三";
     var age=20;
     var sex="男";
     var isEducated=false;
    document.getElementById("info").innerHTML="<li>"+xm+"</li>" +"<li>"+sex+"</li>"+"<li>"+age+"</li>"+"<li>"+isEducated+"</li>";
    </script>




    以下内容属于行业经验部分:
    1. 所有的命名最好是一些跟需求的内容相关的词,比如说我想申明一个变量,用来表示我的学校,那么我们可以这样定义 var mySchool = "我的学校";
    2. 比如说我想申明一个数组,表示很多人的名字,那么我们可以这样定义 var names = new Array();用英文的复数表示更多;
    展开全文
  • 命名空间的定义:由关键字 namespace后边接着命名空间名字,之后接一对花括弧括住的一块声明和定义; //17.2.A.h 头文件定义命名空间 primer_17_2namespace primer_17_2 { //定义成员类A class A { public: int...
    1. 命名空间的定义:由关键字 namespace后边接着命名空间名字,之后接一对花括弧括住的一块声明和定义;
    //17.2.A.h   头文件定义命名空间 primer_17_2
    
    namespace primer_17_2
    {
      //定义成员类A
      class A
      {
        public:
          int getA(); //成员函数,定义在命名空间的定义文件中,并且在命名空间内部定义;
          int getB(); //成员函数,定义在命名空间的定义文件中,但是,它是在命名空间外部定义的,请查看下边的 17.2.A.cpp 定义文件;
          int fun() { return 0; } //成员函数及其实现体,在类内部定义,也就是在命名空间的头文件中定义;
          friend A operator+(const A &lhs, const A &rhs); //将操作符函数声明为友元函数,因为该函数被定义成了非成员函数;
        private:
          int v;
      };
      A operator+(const A &lhs, const A &rhs); //为命名空间primer_17_2声明一个加操作符成员,必须在命名空间头文件以外定义,在命名空间实现文件中定义时:既可以在命名空间内部定义也可以在外部定义,外部定义时必须指定命名空间限定符;在其他文件中定义时:必须指定命名空间限定符,以指明函数属于哪个命名空间;
      char get(); //为命名空间primer_17_2声明一个普通成员,方法同加操作符,本例中,该函数定义在了其他文件中,请看文件:17.2.C.cpp;
      const char ch1 = 'a';   //ok  为命名空间primer_17_2定义一个字符常量并初始化,常量必须设置初始值;
      static char ch2 = 'b';   //ok  为命名空间primer_17_2定义一个静态字符常量,并设置初始值,在使用的程序中可以修改;
      static char ch3;// = 'c';    //ok  为命名空间primer_17_2定义一个字符常量,不设置初始值,在使用的程序中可以修改;
      //static const char ch4;    //error, 常量必须设置初始值;
      static const char ch4 = 'd';    //ok  静态的常量,设置了初始值;
      extern char ch5;    //声明字符变量ch5,在使用的程序中进行定义,如:char primer_17_2::ch5,或 char primer_17_2::ch5 = 'e',必须在extern声明后,再在命名空间实现文件中定义该变量;
      extern int n;    //声明定义方法同上;
    
    } //; 这里不需要以分号结尾

    在花括弧中可以出现 能够全局作用域中出现的任意声明:类,变量(以及他们的初始化),函数(以及他们的定义),模板以及其他的命名空间

    1. 命名空间成员的定义:
      (a) 命名空间中,类的成员函数可以在命名空间的类的内部定义,也可以在命名空间的实现文件中定义;如:上述的类成员函数int getA()在命名空间的实现文件中定义,而成员函数 int fun();则在类内部定义,自动成为内联函数;
      (b) 命名空间的直接成员,必须在头文件声明,在实现文件中定义,如:上述 char get()与 加操作符函数 定义在命名空间的实现文件中;
    //17.2.A.cpp
    
    #include "17.2.A.h"
    namespace primer_17_2
    {
      int A::getA()  //类A的成员函数,在命名空间实现文件中定义,并且在命名空间内部定义;
      {
        return v;
      }
    
      A operator+(const A &lhs, const A &rhs) //命名空间的直接成员函数,在命名空间实现文件中定义,并且在命名空间内部定义;
      {
        A a;
        a.v = lhs.v + rhs.v;
        return a;
      }
    
      /*char get() //注释掉了,为了说明在其他文件中如何定义命名空间的直接成员,查看 17.2.C.cpp
      {
        return 'm';
      }
      */
    
      int n = 0; //注意变量n的定义,首先在头文件中extern声明,然后在命名空间实现文件中进行定义,赋值或不赋值都可以;
      char ch5 = 'e'; //声明与定义方法同上;
     }
    
    int primer_17_2::A::getB() //类A的成员函数,在命名空间实现文件中定义,并且在命名空间外部定义;
    {
      return 100;
    }
    
    char primer_17_2::get(char c)  //命名空间的直接成员函数,在命名空间实现文件中定义,并且在命名空间外部定义;
    {
      return c;
    }
    
    // 17.2.C.cpp,观察primer_17_2 的直接成员 char get();的定义:
    
    #include "17.2.C.h"
    #include "17.2.A.h"
    namespace AA
    {
      int getAA()
      {
        return -1;
      }
    
      //error, primer_17_2的 成员get在这里定义是非法的,这里的作用域属于命名空间AA;
      /*
      char primer_17_2::get()
      {
        return 'z';
      }
      */
    }
    
    //ok,在这里定义必须指定primer_17_2限定符;
    char primer_17_2::get()
    {
      return 'z';
    }
    
    1. 命名空间成员定义总结:
      (a)命名空间直接成员函数:在命名空间头文件以外定义时,既可以在命名空间实现文件中定义,也可以在其他文件中定义:

        (a.1)   在命名空间实现文件定义时:既可以在命名空间内部(花括弧以内)定义也可以在外部(花括弧以外)定义,外部定义时必须指定命名空间限定符;
      
        (a.2)   在其他文件中定义时:必须指定命名空间限定符,以指明函数属于哪个命名空间;
      

    (b)类类型及模板类型:其成员函数可以在类内部定义,也可以在命名空间的实现文件定义,这时可以在内部也可以在外部,在其他文件中定义时须指定命名空间限定符;

    (c)非const以及非static直接变量,必须以extern进行声明,然后在使用该变量的地方进行定义,如上述例子中的变量ch5与n的声明与定义;

    (d)命名空间可以不连续定义,即在多个文件中进行成员的声明和定义,这些成员的声明和定义是累积的,共同组成同一个命名空间;
    4. 命名空间的使用:

    #include <iostream>
    #include "17.2.A.h"
    
    using namespace std;
    using namespace primer_17_2;
    
    int main()
    {
      A a;
      A b;
      A ab = a + b;
      cout << "ab.v:" << ab.getA() << endl;
    
      cout << "primer_17_2::get():" << get() << endl;
      cout << "primer_17_2::ch1:" << ch1 << endl;
    
      ch2 = 'b'; //primer_17_2::ch2
      cout << "primer_17_2::ch2:" << ch2 << endl;
    
      ch3 = 'c';
      cout << "primer_17_2::ch3:" << ch3 << endl;
    
      cout << "primer_17_2::ch4:" << ch4 << endl;
    
      cout << "primer_17_2::ch5:" << ch5 << endl;
    
      cout << "primer_17_2::n:" << n << endl;
      return 0;
    }

    运行结果:
    ab.v:100
    primer_17_2::get():z
    primer_17_2::ch1:a
    primer_17_2::ch2:b
    primer_17_2::ch3:c
    primer_17_2::ch4:d
    primer_17_2::ch5:e
    primer_17_2::n:0

    展开全文
  • 众所周知std是一个命名空间,它里面可以定义一系常量,变量跟函数,最简单的命名空间的定义如下: namespace Output { int i = 10; const int con = 15; void printStr() { printf("hello"); } } using ...
  • C++命名空间的定义与使用

    千次阅读 2019-09-03 14:44:01
    1、对C++命名空间理解 以主函数调用cout为例,使用using namespace std作用是为了调用cout时,区分此处cout是<iostream>下命名空间std下cout。具体理解下图辅助。 2、定义命名空间 #include <...
  • Java变量的命名定义和初始化

    千次阅读 2017-09-15 22:24:09
    变量的命名  1.首字母是英文字母、$或下划线,由字母、数字、下划线组成。  2.变量的命名遵循见名知义原则。  3.Java变量名建议不用中文。  4.变量名首字母建议不用大写字母。  5.用驼峰命名命名多个...
  • python中变量的定义命名

    万次阅读 2018-07-18 19:16:14
    2.变量的定义 在 python 中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建 等号(=)用来给变量赋值 =左边是一个变量名 =右边是存储在变量中的值 变量名 = 值 变量定义之后,后续就可以直接使用了 ...
  • 命名空间中函数的定义和调用

    千次阅读 2019-06-29 16:49:07
    发现一个关于命名空间中问题:即cpp文件中定义命名空间中函数和调用命名空间中函数,前者需要加域限定符,而后者则不需要 。 值得一提是,当在 cpp 文件定义头文件中命名空间内函数时,因为在定义时加上了...
  • xml xsd命名空间定义

    千次阅读 2014-10-11 11:46:23
    xml命名空间可以是任意字符串,但往往是一个绝对url地址,例如:http://www.abc.com/schema,命名空间语法是: xmlns[:prefix]="命名空间字符串"。 例如,orderlist.xsd定义: ------------------ ?...
  • 结构体的定义命名

    万次阅读 2018-08-30 20:48:24
    struct rectangle {  struct Point lefttop;...结构成员可以是基本数据类型,也可以是一个构造结构类型,如上代码 上面代码,你为他取结构变量时,如下:struct rectangle Rectangle R...
  • 我知道一些大公司例如华为中兴,对Java定义变量的命名都有严格方法,我是一个刚刚接触Java新手,想现在就养成习惯,谁能告诉我一下,或者你们有自己好的命名方法也可以告诉我,谢谢
  • 函数的命名、声明和定义

    千次阅读 2019-02-20 09:14:02
    一、函数名的命名:数字、字母、下划线 函数的命名要有意义,要做到:顾名思义:名称反映功能 业界编码风格习惯: 1全小写,下划线(旧式C) go_to_school 2每个单词首字母大写(C++) GoTOScool 3第一个单词...
  • 通用命名的规则 1 unix like 风格:单词用小写字母表示,每个但粗直接用下划线“-”分割 2 windows 风格: 大小字母混用,单词连在一起,每个单词首字母大写 原则 1 标识符的命名要清晰、明了,有明确的定义,同时...
  • 定义 命名规范和常用

    千次阅读 2017-06-30 12:33:18
    命名规范 http://www.jianshu.com/p/9dd18e69a954 ...常用定义: http://download.csdn.net/detail/sunnysu99/9885047 参考:http://blog.csdn.net/xiaoxiaobukuang/article/details/504
  • [thinkPHP5项目实战_02]命名空间的定义

    千次阅读 2017-08-10 10:06:57
    1.命名空间解决问题 1)用户编写代码与PHP内部类/函数/常量或第三方类/函数/常量之间名字冲突; 2)为很长标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)名称,提高源代码...
  • C++宏定义不受命名空间约束

    千次阅读 2018-06-20 22:04:58
    C++中,宏定义不受命名空间约束 例 // xxx.h namespace A { #define xxx() xxxxx } // 在其他文件中,引入xxx.h文件,使用宏定义时,不需要加命名空间 // yyy.cpp #include "xxx.h" // somd code ...
  • 》给一个变量赋值以后 电脑给这个变量,提供一个存储空间,于是有了id ...》标识符的命名规范 1,组成:数字,字母,下划线 2,不能够以数字开头 3,不能与关键词重名 》 id 可以查看一个数据内...
  • Java命名规范+常量定义方法

    千次阅读 2018-12-12 22:05:33
    但是由于Java面向对象编程的特性,每一名Java程序员都 可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。 由于互联网上的域...
  • 命名空间下定义类型

    千次阅读 2014-06-23 11:32:57
    如果定义的类型要用于其他.NET 语言,应该把它们放在命名空间下,而不是模块中。这是因为模块在被编译成 C# 或其他.NET 语言时,被处理成类,在模块中定义的任何类型都成为这个类型内部类。虽然对于 C# 来说,这并...
  • Javascript 类和命名空间的定义

    千次阅读 2010-05-06 16:14:00
    //1.类function Test(id){ this.id=id; this.method=function() { //代码 };} //可以继续扩展上面方法:Test.prototype.method1=function(){};//调用写好类 var A =
  • 名字空间是用来划分冲突域的,把全局名字空间划分成几个小的名字...首先我们看一下名字空间的定义: 1 //MyLib.h文件 2 namespace MyLib{ 3 extern int i;//记住这是变量i的声明,不是i的定义 4 void fun(); 5 }/
  • 定义:Python中变量就是代表(或者引用)某值名字。>>> y = 5 >>> y*2 10上述就是赋值操作,把5赋值给变量y。变量的命名规则:变量命名可以包括字母、数字、下划线。变量不可以数字开头。
  • 项目中有个需求,事件第一次执行(立即执行)与后几次执行不同,但是直接传递定义的命名函数,返回结果一样。。如果通过匿名函数内再嵌套具名函数,结果就能返回正确!代码如下: 代码按钮</button> (function(w) ...
  • C++:定义头文件/定义命名空间

    千次阅读 2020-02-26 22:25:33
    1.先在任意一个文件夹建立一个叫做hello.cpp文件 2.在hello.cpp同一个...3.在myhead1.h文件中声明并定义一个函数方法,叫m1,这个m1什么都不做,就打印一句话"myhead1->m1" 4.在hello.cpp文件中调用m1方法 ...
  • 一种web接口命名定义

    千次阅读 2018-07-26 09:22:21
    当然了规范归规范,但是大家在实际工作中,为了方便自己项目开发,会结合自己情况,对规范做出调整形成自己接口模式, 毕竟没有硬性要求。 下面介绍一下自己一套定义方式:  ①:定义两种请求类型:get...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,626
精华内容 17,450
关键字:

命名的定义