C++学习笔记-类定义的注意事项和C#的区别

1:
类当中的一批函数可以被一个public关键字引导
来标明这些函数是公开的

2:
成员函数可以放在类的外部定义
但必须在类的内部做声明
在类外部做定义的时候必须形如这样:
bool YorClassName::YorMethordName(int param)
{
//....
return true;
}
就如同C#中的完全限定名
YorClassName::YorMethordName
如果在类中定义成员函数的话,就不用这样了

3:
创建一个对象完全可以不用new
形如:
YorClassName target;
target.doSth();

4:
函数定义体的花括号后面是没有分号的
类定义体的花括号后面是要有个分号的
这是C的遗留问题
(c里面根本就没有类,类是C++对C里的结构struct类型扩展出来的)

5:
只要在类当中定义成员函数,
那么这个函数就是内联的
在类外部定义的函数除非形如这样的才会编译成内联
inline bool YorClassName::YorMethordName(int param)
{
//....
return true;
}
如果从模式,多人协作方面考虑
(让类有C#中接口的作用)
应尽量把方法放在类外面定义
一般来说短小的,不超过三行的成员函数的定义,放在类中比较合适

时间: 2024-09-19 09:57:22

C++学习笔记-类定义的注意事项和C#的区别的相关文章

php学习笔记 类的声明与对象实例化

复制代码 代码如下: <?php /* 类的声明 * 1.你要开发的是什么,确定写什么类 * 2.类中的成员一定要属于这个类 * [修饰类的关键字] class 类名{ * 成员属性: * 成员方法: * } * 3.在类中声明成员属性时,前面必须有修饰词,当不确定使用哪个词时,使用var或public * 一个文件只保存一个类,文件名中包含类名,文件:类名.class.php * 类名的写法: * 变量:aaaBbbCcc * 函数:aaaBbbCcc * 常量:AAABBBCCC * 类名:

C++学习笔记——常量定义

常量是定义以后,在程序运行中值不能被改变的标识符.C++中定义常量可以用#define .const 这两种方法.例如: #define PRICE 10 //定义单价常量10 const int PRICE = 10; //定义单价常量10 其实用常量是有它的理由的,下面我们来看下面两段程序对比代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#

php学习笔记 类的声明与对象实例化_php基础

复制代码 代码如下: <?php /* 类的声明 * 1.你要开发的是什么,确定写什么类 * 2.类中的成员一定要属于这个类 * [修饰类的关键字] class 类名{ * 成员属性: * 成员方法: * } * 3.在类中声明成员属性时,前面必须有修饰词,当不确定使用哪个词时,使用var或public * 一个文件只保存一个类,文件名中包含类名,文件:类名.class.php * 类名的写法: * 变量:aaaBbbCcc * 函数:aaaBbbCcc * 常量:AAABBBCCC * 类名:

Java编程思想学习笔记——类的访问权限

类的访问权限 Java中,访问权限修饰词用于确定库中哪些类对于该库的使用者是可用的. public class Foo{ } 注意点: 每个文件(编译单元)只能有一个public类. public类的名称必须完全和含有该编译单元的文件名相匹配,包括大小写. 编译单元内没有public类也是可行的(不常这么用),在这种情况下,可以随意对文件命名. 类既不可以是private的(除该类以外,任何类都不能访问它),也不可以是protected.(事实上,内部类可以是private或protected的

javascript面向对象编程:js类定义函数时用不用prototype的区别

一直在使用js编写自以为是面向对象的方法,遇到一个问题,就是定义一个方法,如下: function ListCommon2(first,second,third) { this.First=function () { alert("first do"+first); } } ListCommon2.do1=function(first) { // this.First(); alert("first do"+first); } ListCommon2.prototy

javascript面向对象编程:js类定义函数时prototype和this的区别

在面向对象编写js脚本时,定义实例方法主要有两种 如下: function ListCommon2(afirst) { var first=afirst; this.do1=function () { alert("first do"+first); } } ListCommon2.prototype.do2=function() { // alert("first do"+first);//会出错,不能访问first this.do1(); } this.do1=

前端学习笔记style,currentStyle,getComputedStyle的用法与区别_javascript技巧

style.currentStyle.getComputedStyle区别介绍 样式表有三种方式 内嵌样式(inline Style) :是写在Tag里面的,内嵌样式只对所有的Tag有效. 内部样式(internal Style Sheet):是写在HTML的里面的,内部样式只对所在的网页有效. 外部样式表(External Style Sheet):如果很多网页需要用到同样的样式(Styles),将样式(Styles)写在一个以.css为后缀的CSS文件里,然后在每个需要用到这些样式(Styl

《从零开始学Swift》学习笔记(Day 55)——使用try?和try!区别

原创文章,欢迎转载.转载请注明:关东升的博客  在使用try进行错误处理的时候,经常会看到try后面跟有问号(?)或感叹号(!),他们有什么区别呢? 1.使用try? try?会将错误转换为可选值,当调用try?+函数或方法语句时候,如果函数或方法抛出错误,程序不会发崩溃,而返回一个nil,如果没有抛出错误则返回可选值. 示例代码如下: //查询所有数据方法 func findAll() throws -> [Note] { guard listData.count > 0 else { //

Extjs学习笔记之五 一个小细节renderTo和applyTo的区别_extjs

ExtJS中的renderTo和applyTo的差别 对applyTo和renderTo的理解和思考 个人认为这两篇文章写的不够通俗.写一个简单的例子来看看最终生成了什么代码, 复制代码 代码如下: <head> <title>RenderTo and ApplyTo</title> <link rel="Stylesheet" type="text/css" href="ext-3.1.0/resources/c