首页 > 编程语言 >C++ 面向对象开发1

C++ 面向对象开发1

时间:2023-08-22 15:33:04浏览次数:46  
标签:... const 函数 C++ 面向对象 开发 new class String

  • Object Based:面对的是单一class的设计;Object Oriented:面对的是多重classes的设计,classes和classes之间的关系。
  • class 前向声明,声明,定义。
  • 函数若在class body中定义完成,便自动成为inline函数。如果函数太复杂就不会成为inline。
  • overload的函数编译之后签名不同。虽然参数列表不同,可以重载,但是参数列表有默认值,可能会与没有参数的版本歧义,不能重载。 
  • 非const对象可以调用const成员函数,const对象只能调用const成员函数。
  • 封装是对类而言,不是对对象而言。同一个class的对像互为friends。
  • 成员函数和全局函数的选择,<<重载只能是全局非成员函数。输出流是ostream对象
  • class 设计分布如下
#ifndef _String_
#define _String_

class String{
    ...
};

String::function(...)...
Global-function(...)...

#endif
  • class with pointer members 必须有copy ctor 和 copy op=。
  • new:先分配内存,再调用构造函数。
  • delete:先调用dtor,再释放memory。
  • new delete 分配释放的内存,实际使用的就是malloc free。
  • 为什么new [] 要搭配 delete[]

     

标签:...,const,函数,C++,面向对象,开发,new,class,String
From: https://www.cnblogs.com/wuyun--wy/p/17643649.html

相关文章

  • swift开发之 -- 自动轮播图(UIScrollView+UIPageControl+Timer)
    比较简单,原理就不说了,这里只做记录:代码如下:1,准备varpageControl:UIPageControl?varmyscrollView:UIScrollView?varmyTimer:Timer?varmycurrentPage:NSInteger?varcourses=[["name":"first","pic":"1.jpeg&qu......
  • ios开发之 -- NSData 和 NSString , UIImage 等之间的互转
    1//NSData转换为UIImage2NSData*imageData=[NSDatadataWithContentsOfFile:imagePath];3UIImage*image=[UIImageimageWithData:imageData];45//UIImage转换为NSData6NSData*imageData=UIImagePNGRepresentation(aimae);1.......
  • ios开发之--UICollectionView的使用
    最近项目中需要实现一种布局,需要用到UICollectionView,特在此整理记录下!贴上最终实现的效果图: 1,声明@interfaceFirstViewController()<UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>@property(nonatomic,strong)UICollectionView*m......
  • 【转载】Macbook M1/M2如何调试c++代码?使用lldb即可
    转载自:https://www.zybuluo.com/qidiandasheng/note/349994#:~:text=GDB%3A,C%2B%2B或者Python插件。MacbookM1/M2无法安装gdb,但是可以使用lldb进行代码调试。使用方法和介绍如下:......
  • 语音app软件关键开发知识
    平时我们都有玩过TT、氧气、伴伴、比心等语音软件,那么如果自己想要开发一款这样的app需要那些东西呢?感兴趣的可以继续往下看,如果对你有收获可以点赞收藏哦一般来说app可以分为原生和非原生开发,原生开发的软件体验好,流畅度高,可扩展能力也强,混合开发像uniapp这种技术可以做但是效果会......
  • Java开发的一些小技巧
    编写清晰的代码注释:在关键地方添加合适的注释,使代码更易读、易懂。注释应该解释代码的用途、实现思路或者特殊考虑的地方,帮助其他人理解和维护代码。避免使用魔法数值:将常用的魔法数值定义为常量,以便于理解和维护代码。通过给常量起一个有意义的名称,可以提高代码的可读性和可维护性......
  • C++ 函数模版 不定参数
    实现参数不固定的加法,需要如下实现template<typenameT>TtempSum(constT&t){ staticTsum; sum+=t; returnsum;}//这里保存计算结果template<typenameT>TsaveValue(constT&t){ staticTtemp=t;//这里必须用static的功能 returntemp;}voidt......
  • 直播平台软件开发,Android studio设置分割线
    直播平台软件开发,Androidstudio设置分割线该方法在xml布局文件中添加ImageView控件设置竖直分割线时,设置宽度为0.5dp,高度为match_parent(与父控件等高),颜色设置为black(黑色),此处数值可根据需求自行更改     <ImageView      android:layout_width=......
  • 多态性 - C++中实现运行时多态的方式
    一、概述C++中的多态性是指同一个函数可以有多种不同的实现方式,并且在运行时根据实际情况进行选择执行。在C++中实现多态有两种方式:静态多态和动态多态。静态多态是指在编译时确定函数的实现,包括函数重载和模板函数;动态多态是指在运行时根据对象的实际类型来确定函数的实现,包括虚......
  • 语音app软件关键开发知识
    平时我们都有玩过TT、氧气、伴伴、比心等语音软件,那么如果自己想要开发一款这样的app需要那些东西呢?感兴趣的可以继续往下看,如果对你有收获可以点赞收藏哦一般来说app可以分为原生和非原生开发,原生开发的软件体验好,流畅度高,可扩展能力也强,混合开发像uniapp这种技术可以做但是效果......