首页 > 编程语言 >C++ 面向对象高级开发 4、参数传递与返回值

C++ 面向对象高级开发 4、参数传递与返回值

时间:2024-06-21 17:36:37浏览次数:26  
标签:const reference private 参数传递 C++ 返回值 构造函数 引用

consructor构造函数:被放在private 区

ctors放在private 区

class A {

public:

  static A& getInsance();

        setup() {...};

private:

  A();

        A(const A & rhs);

};

A& A::getInstance()

{

  static A a;

        return a;

}

A::getInsance().setup();

 

const member functions(常量成员变量)

 

 思考这个函数是否会改变数据的值,如果不会,一定要加上const。养成良好习惯。

 

 

by value 是整包传进去,影响性能。能不用,尽量不用。

by reference 底部就是指针,向传指针一样快。 如果不希望该百年,可以加上const关键字,这样就不会改变的。

建立一个良好习惯,所有参数都传引用,不要传数值。

 

 

 

 

 

 

 相同class的各个objects 互为friends(友元)

 

一个类是否设计的好不好:

1、数据一定是private。

2、参数尽可能是by reference ( to const)。

3、返回值尽量用 by reference( to const)。

4、在类的本体中,应该加const就const 否则使用者会抱怨。

5、构造函数特殊语法:用于数据初始化,尽量是用。

 

函数返回值:返回的对象是local变量时,不能传引用。

参数和函数返回值首先考虑引用,是用引用是否有问题呢。大多数情况下是可以。

 

标签:const,reference,private,参数传递,C++,返回值,构造函数,引用
From: https://www.cnblogs.com/yzrStart/p/18260649

相关文章

  • [Effective Modern C++] 条款18笔记
    条款18中的完整代码:点击查看代码#include<iostream>#include<memory>#include<string>//假设基础的Investment类和Stock类classInvestment{public:virtual~Investment()=default;virtualvoiddisplay()const=0;};//其它类类似,略classSto......
  • [Effective Modern C++] 条款19笔记 - 为什么deleter的类型是std::unique_ptr类型的一
    为什么deleter的类型是std::unique_ptr类型的一部分,而不是std::shared_ptr的一部分?std::unique_ptr<Widget,decltype(loggingDel)>upw(newWidget,loggingDel);std::shared_ptr<Widget>upw(newWidget,loggingDel);这个问题涉及到std::unique_ptr和std::shared_ptr......
  • C++list类的常见函数以及其模拟实现
    文章目录前言一、list内部成员有什么?二、构造函数以及析构函数1.默认构造2.传参构造3.迭代器构造4.深拷贝以及运算符=的重载1.深拷贝2.=的重载5.析构函数三、迭代器的模拟实现1.正向迭代器2.反向迭代器四、常见函数及其实现1.insert函数2.erase函数3.clear函数4.push_......
  • 我一直看不明白:“C++会被java/python等这些语言替代”
    在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「C++的资料从专业入门到高级教程」,点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!有些程序,是既可以用c++编写,也可以用java/python编写。如果这类程序以前主要是由c++编写,后来逐渐变成主要......
  • c++重载输出流(<<)
    一.重载输出流在C++中,可以重载输出流运算符(<<)来自定义对象的输出方式。重载输出流运算符允许我们以自定义的方式将对象输出到标准输出流或其他输出流中。以下是关于重载输出流运算符(<<)的几个知识点以及相应的示例:重载输出流运算符的语法:重载输出流运算符必须作为一个普......
  • 《C++ Primer》导学系列:第 7 章 - 类
    7.1定义抽象数据类型7.1.1类的基本概念在C++中,类是用户定义的类型,提供了一种将数据和操作这些数据的函数(成员函数)组合在一起的方法。类定义了对象的属性和行为,通过实例化类来创建对象。7.1.2定义类定义类时,需要指定类的名称,并在类体内声明数据成员和成员函数。类定义的......
  • C++的封装(适合新人,通俗易懂)
    作者:求一个demo版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处内容通俗易懂,没有废话,文章最后是面试常问内容1、访问权限介绍封装,那么需要先介绍一下访问权限:public公共权限、protected保护权限和private私有权限。(1)public公共权限简单来说:如果......
  • A tour of C++ 读书笔记
    第一章:C++只是个编译型语言,需要源文件编译成目标文件,再通过链接各种库到可执行文件1.6常量  const  constexpr这个代表是要在编译的时候估值,性能会有所增加吧2.4联合体(union)  联合体所有的成员都是分配在同一地址上面,所以联合体所占的空间是跟其自身内部成员所......
  • C++入门(万字总结,建议收藏!!!)
    一、前言1.1什么是C++C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机,20世纪80年代,计算机界提出了OOP(objectorientedprogramming:面向对象)思想,支持面向对象的程序设计语言应运......
  • 计算机毕业设计项目推荐,33709基于协同过滤的旅游推荐系统的设计与实现(开题答辩+程序定
    摘 要本论文主要论述了如何使用python语言、Django框架开发一个旅游推荐系统,本系统将严格按照软件开发流程,进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,作者将论述该系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析......