c++学习日记与体会(不断更新)

*在使用无参构造函数创建对象时不可以在后面加括号

   Circle circle1();是错误的

  CIrcle circle1;是正确的

*避免多次包含

  如果在head files或source files 里多次定义了某个类的头文件,可以用以下方法:

  #ifndef CIRCLE_H

  #define CIRCLE_H

    {

  }

  #endif

*内联函数提高函数执行效率(适用于短函数)

  inline int number;

  或者直接在class类里面写函数定义

*get、set函数是为了保证数据域封装

  Get函数是一个访问器:

  double getRadius();

  当返回类型为bool型时:命名习惯:bool  isPropertyName();

  Set函数是一个更改器

  void setRadius(double);

*变量可以在声明时初始化,但一个类成员不可以在声明时初始化

*string s(“welcome to c++);等价于string s = “welcome to c++”; 等价于char s1[] = “welcome to c++”;//前者效率更高

*string s;//创建一个空字符串

*参数为对象的时候,实际上是传值方式传递,将对象的内容复制给函数的参数

  传引用实际上表示:函数的参数是对象的一个别名,最好用传引用

*static 关键字表示,该类无论哪个对象都可以调用,并且都调用同一个成员

  创建circle1对象使NumberOfObject加一,创建circle2对象又使NumberOfObject加一

  静态变量和静态函数无须创建对象即可访问

  //应使用ClassName::functionName(arguments)调用静态函数,使用ClassName::staticVariable访问静态变量,可提高程序可读性

  什么情况下声明为静态:如果变量和函数不依赖于任何类对象,就应该声明为静态

*const关键字:表示只读成员函数,

  语法:把const关键字放在函数头的结尾即可:int getNumber()const;

  定义的时候也要在函数头后面加constA

原文地址:https://www.cnblogs.com/miaoqianling/p/8952524.html

时间: 2024-10-08 20:05:07

c++学习日记与体会(不断更新)的相关文章

小白学习日记更新:tp5.0

小白学习日记更新 1.首先看开发手册很重要ThinkPHP5.0完全开发手册 2.use think\Db;即可Db::table('')->等一系列操作 3.Db::table('')->find()是找一条记录 Db::table('')->select()是找多条 Db::table('')->limit(3,2)是找第4条,取两条数据 Db::table('')->getLastSql();是输出最后一次语句 4.tp5的严格性,必须判断是否有或者存在

学习日记-----存储过程介绍

SQL Server 存储过程 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. ? 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行. 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数.输出参数.返回单个或多个结果集以及返回值. 由于存储

学习日记-----各种问题

用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答: 从下至上分别为:数据访问层.业务逻辑层(又或成为领域层).表示层 数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问 业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关 表示层:是系统的UI部分,负责使用者与整个系统的交互.  优点:  分工明确,条理清晰,易于调试,而且具有可扩展性. 缺点:  增加成本. 分层式结构究竟其优势何在? 1.开发人员可以只关注整个结构中的其中某一

javascript学习日记之变量的作用域

``` 很显然第一个弹出框并没有如我所想弹出的global而是undefined 这是为什么呢? 其实由于函数作用域特性 函数域始终优于全局域 同名的局部变量会覆盖掉全局变量 而第一次调用alert的时候scope还没正式定义 所以为undefined 以上代码可以理解为: ``` function f(){ var scope; alert(scope); var scope ="local"; alert(scope); }; f(); //等价与函数内变量的声明'提前'至函数体顶

informatica 学习日记整理

1. INFORMATICA CLIENT的使用 1.1 Repository Manager 的使用 1.1.1 创建Repository. 前提: a. 在ODBC数据源管理器中新建一个数据源连接至你要创建Repository的数据库(例:jzjxdev) b. 要在你要连接的数据库中新建一个用户(例:name: ETL password: ETL) 现在你可以创建一个Repository了.选择Repository – Create Repository,输入Repository Name

面向对象程序设计学习日记

面向对象程序设计学习日记 持续更新(可能),更新时间不限,催更不管,腰斩就跑(逃-) Date:2018.5.1(Elevator_V1.1) 前言 五一节每年都过得相当委屈,全国劳动者放假,学生虽然跟着放假却因为劳动者都不足,不少服务不是暂停就是加价,所以放假也只能老实呆在家里宅着. 但是!今年五一节是我这一生过得最憋屈的一次,QQ列表里的人几乎全去玩了,就我一个没人约,孤独的宅在家里刷空间??然而打开空间就又是一股满满的现充之风铺面而来,还给不给死宅留条活路了(心碎.jpg). 五一没人约,

学习日记之状态模式和Effective C++

状态模式(State):当一个对象内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类. (1),状态模式主要负责解决的是当控制一个对象转换的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化. (2),状态模式的好处是将与特定状态相关的行为局部化,并且将不同状态的行为分割开来. (3),将特定的状态相关的行为都放入一个对象中,由于所有与状态相关的代码都存在于某个ConcreteState中,所以通过定义新的子类可以很容易地增加新的状态和

学习日记

五一耍了三天,自己的计划有泡汤,那种制止力哪里去了,不过我认真起来还有有废寝忘食的时候,不过希望这种时候多一点,回家妈妈告诉我,她给老师打电话了的,老师说了我的一些情况,不过我没有老师说的那么好,学习在班上算中等.我觉得还算不上吧!任重而道远吧. Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量

学习日记之解释器模式和Effective C++

解释器模式(interpreter):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. (1),如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言的句子.这样可以构建一个解释器,该解释器通过解释这些句子来解决该问题. (2),当一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象的语法树时,可使用解释器模式. (3),容易改变和扩展文法,因为该模式使用类来表示文法规则,你可以使用继承来改变和扩展该文法