C++ 语法学习
2016-04-24 18:06
239 查看
Enum:
作用域:
全局作用域: enum classname{ membername = value} (结尾不需要分号,和块类似)。
局部作用域: enum class classname{ membername = value}
初始化:
enum定义了新的类型,所以一定要用对象来初始化enum对象。
* 一个全局作用域的enum对象或成员可以自动转化为int类型。但是局部作用域的不可以。
前值声明:
C++11中可以前置声明enum。
enum classname : typename; 如果是全局作用域的enum必须指定其类型。
enum class classname ; 局部作用域的enum可以不指定类型,将会隐式转化为int类型。
namespace:
namespace可以不连续,完成接口与实现分离。
#ifndef test_h
#define test_h
namespace
{
class fly{};
void cool ();
}
#endif
#include "test_h"
namespace
{
void cool(){}
}
局部作用域中如果有和全局作用域中重名的变量或函数,将会隐藏全局版。 使用using声明让函数可见。
当函数中参数有类对象时,调用函数时也会去类声明的作用域中查找。
作用域:
全局作用域: enum classname{ membername = value} (结尾不需要分号,和块类似)。
局部作用域: enum class classname{ membername = value}
初始化:
enum定义了新的类型,所以一定要用对象来初始化enum对象。
* 一个全局作用域的enum对象或成员可以自动转化为int类型。但是局部作用域的不可以。
前值声明:
C++11中可以前置声明enum。
enum classname : typename; 如果是全局作用域的enum必须指定其类型。
enum class classname ; 局部作用域的enum可以不指定类型,将会隐式转化为int类型。
namespace:
namespace可以不连续,完成接口与实现分离。
#ifndef test_h
#define test_h
namespace
{
class fly{};
void cool ();
}
#endif
#include "test_h"
namespace
{
void cool(){}
}
局部作用域中如果有和全局作用域中重名的变量或函数,将会隐藏全局版。 使用using声明让函数可见。
当函数中参数有类对象时,调用函数时也会去类声明的作用域中查找。
相关文章推荐
- c++中的cin,cin.get(),cin.getline()读取字符串
- C++ primer
- C++ Leetcode 111Minimum Depth of Binary Tree
- C语言概述(简答)
- C++旅途 之 申请动态内存和释放
- C++第四次作业
- C语言中变长参数的函数的实现
- C++实验四—乘法口诀表
- 使用GNU make 编译C程序
- C++生成希尔伯特矩阵
- 各种排序算法代码(C语言版)
- c语言程序设计报告
- 一个C语言函数声明和定义的编译问题
- AndroidStudio 编译C/C++文件生成SO文件
- C++内存分配机制
- C++ new分配失败运行机制
- C/C++中inline/static inline/extern inline的区别及使用
- C/C++中inline/static inline/extern inline的区别及使用
- c++:warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
- 1052. 卖个萌 (20)