C++ 命名闲谈

  C++中的陷阱果然很多,不久前又犯了一次错。我在某个头文件中定义了_UTILITY_,接着包含了它和vector头文件,结果就在之后的vector声明中就出错(显示不允许使用不完整的类型)了。这就让我很郁闷了:我明明包含了vector头文件,而且也使用using指示。在一些简单的分析和尝试之后,问题很容易就解决了。这是一个命名冲突的问题,我们之前定义的_UTILITY_和vector头文件冲突了。下面附上简单的问题代码:

  utility.h

1 #ifndef _UTILITY_
2 #define _UTILITY_
3
4 #endif

  utility.cpp

 1 #include"utility.h"
 2 #include<iostream>
 3 #include<vector>
 4
 5 using std::vector;
 6 using std::cout;
 7 using std::endl;
 8
 9 int main()
10 {
11
12     vector<int> ivec = { 1, 2, 3 };
13     //这会提示不允许使用不完整的类型
14     for (auto i : ivec)
15         cout << i << endl;
16
17
18     system("pause");
19     return 1;
20
21 }

  命名是一个问题,我感觉我现在的命名规范就是win32方式+其他方式,比如:类名首字母大写,函数、方法名单词首字母大写,类成员前加下划线,还有一些通用的。微软的匈牙利命名法有些地方现在看来有些繁琐,iNum一般人都会直接命名为num。这样的可读性一样,而编译器也会提示类型为int。然后用拼音命名感觉太不专业了, 所以还是多背单词吧!

时间: 2024-10-18 14:50:34

C++ 命名闲谈的相关文章

闲谈寻址-两种寻址方法

据说今日强冷空气来袭,早上观摩了实时雷达图以及卫星云图,强冷空气前锋徘徊在韶关附近僵持,将近上午11点,深圳下起了细雨,北风稍微加大,虽然尚未降温但此现象说明冷锋已经插入到了暖湿气流之下造成空气抬升,形成降雨,降温也就紧随其后了.侦察兵已经到了,大部队还会远吗? ??- ??本文以及后面一篇讲DNS的文章纯属两篇闲谈,所谓的闲谈就是不关乎技术细节,尽扯背后发散的思路,所以这两篇并不适合学习之用,如若你已经学过这些方面的内容,不妨展开来与我一起探讨个究竟,然而若你从未接触过这些概念,读下去恐怕会失

批量重命名文件

今天突然想给桌面换张壁纸,打开原来的壁纸文件夹,很多当时觉得不错的壁纸现在已经不能看了,删掉一些之后,壁纸文件的名称变得断断续续.当时下载时是按照数字顺序命名的,现在看上去多少有些别扭.于是突发奇想,能否批量给某一目录下的文件重命名,比如我现在的壁纸文件夹. 首先我想到应该要打开一个目录,猜想是否有opendir之类的函数?果然有!在头文件<dirent.h>下面: DIR* __cdecl __MINGW_NOTHROW opendir (const char*); 返回值是DIR*,查看D

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详细,自己在看它的文档和代码时写了一些demo和笔记,还有它实现的原理记录一下 学习Caliburn.Micro要有MEF和MVVM的基础 先说一下他的命名规则和引导类 以后我会把Caliburn.Micro的 Actions IResult,IHandle ICondu

dos命令-环境变量-数据类型-命名规范

JAVA第一天笔记--dos命令-环境变量-数据类型-命名规范 1.能够阐述JDK和JRE之间区别 JDK(Java Development Kit)是提供给开发人员使用的JAVA开发工具包(javac.exe;java.exe),包含JRE(Java Runtime Environment). JRE(Java Runtime Environment)是Java程序运行环境,包含JVM(Java Virtual Machine)及核心类库. 总结为:开发人员使用JDK开发的程序,在JRE中运行

QT5 QtreeWidget 实现点击item事件以及右键菜单删除item 和 重命名item

1.new 一个QTreeWidget 对象,并设置头标签,和根节点(个人程序需要) QTreeWidget* treeWidget = ui.treeWidget;//我已经在ui设计师中拖了一个QTreeWidget QString headers; headers = "Name" ; treeWidget->setHeaderLabel(headers); QStringList rootText; rootText << "wells";

计算机科学只存在两个难题:缓存失效和命名

计算机科学只存在两个难题:缓存失效和命名. 命名的艺术 “计算机科学只存在两个难题:缓存失效和命名.” ——Phil KarIton 前言 命名一直是我编程过程中很头痛的事,有时为了一个恰当的名称是想了又想,还忍不住Google一下.命名真是一门艺术,好的命名那叫一个高大上.今天总结一些前端命名的规范,梳理一份自己的命名想法,从以下4种代码风格的命名规范部分获取灵感: 1. Google JavaScript代码风格指南 2. Crockford代码规范 3. Dojo Javascript 编

命名管道(FIFO)

一.命名管道:两个不相关的进程通过一个路径名关联,即,只要可以访问该路径,就能实现进程间的通信(先入先出). 二.创建函数原型:int mkfifo(const char*path, mode_t mode);    //成功返回0,失败返回-1 三.代码实现: //write端 #include<stdio.h> #include<sys/types.h> #include<sys/stat.h> #include<unistd.h> #include&l

数据库设计之数据库,数据表和字段等的命名总结

数据库命名规则: 根据项目的实际意思来命名. 数据表命名规则: 1.数据表的命名大部分都是以名词的复数形式并且都为小写: 2.尽量使用前缀"table_": 3.如果数据表的表名是由多个单词组成,则尽量用下划线连接起来:但是不要超过30个字符,一旦超过30个字符,则使用缩写来缩短表名的长度: 字段命名规则: 1.首先命名字段尽量采用小写,并且是采用有意义的单词: 2.使用前缀,前缀尽量用表的"前四个字母+下划线组成": 3.如果字段名由多个单词组成,则使用下划线来进

变量的声明方法、原则和命名规则

变量的声明方法:1,先申明后赋值  int a; a=3; 2,定义变量是直接赋值  int a=3; 3,可以一次声明多个同类型变量,多外变量名称之间要用逗号隔开,最后以分号结束 int zsAge=18,lsAge=20,wwAge=30; 变量的声明原则:先声明----后赋值-----最后使用. 变量的命名规则:1,不能以数字开头  2,不能与C#中关键字重复  3,同一个变量名不能重复定义  4,大小写敏感 (camel命名法  首单词字母小写以后每一个单词首字母大写  英文单词缩写全部