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

C++ 面向对象开发2

时间:2023-08-22 15:49:47浏览次数:43  
标签:函数 derived C++ 面向对象 开发 static 析构 using class

  • static static函数没有this pointer,static数据只有一份,static函数只能处理static数据。static数据在class外需要提供定义。
  • 单例设计
    class A{
    public:
        static A& getInstance();
        setup() {...}
    
    private:
        A();;
        A(const A& rhs);  
        ...
    };
    
    
    A& A::getInstance()
    {
        static A a;
        return a;
    }

     

  • 类模版,函数模版,成员模版,C++标准库的算法都是函数模版。
  • namespace使用: using directive - using namespace std;using declaration - using std::cout;使用namespace 避免名称重复。
  • 构造函数由内而外,析构函数由外而内。
  • 组合:对象包含,或者引用包含。has-a关系。
  • 继承 is-a关系,子类可以在内存中继承数据,子类继承父类函数的调用权。
  • 继承 + 组合:derived构造顺序首先构造base,然后构造component;derived析构先析构自己,然后析构component,然后析构base,观察的结果。
  • non-virtual函数:你不希望derived class 重新定义你它;virtual 函数:你希望derived class 重新定义,它已有默认定义;pure virtual 函数:你希望derived class 一定要重新定义,你对它没有默认定义。
  • conversion function,类型转换函数。operator type();
  • 仿函数:重载了()的类
  • 智能指针(pointer-like classes)。
  • 迭代器(pointer-like classes)指向,代表容器中的一个元素。
  • reference 通常不用于声明变量,而用于参数类型和返回类型的描述。两个函数完全一样,只是const不同,构成重载。

标签:函数,derived,C++,面向对象,开发,static,析构,using,class
From: https://www.cnblogs.com/wuyun--wy/p/17644305.html

相关文章

  • ios开发之--NSNumber的使用
    什么是NSNumber?NSArray/NSDictionary中只能存放oc对象,不能存放基本数据类型,如果想把基本数据类型放进去,需要先把基本数据类型转换成OC对象,代码如下:inta=10;intx=100;floatf1=3.23f;doubled1=2.34;//int--->obj//numberWithInt把in......
  • swif开发之--协议的使用
    以前在oc构建的项目中,如果这个页面需要构建一些指定的页面,一般我会重新创建个集成与UIView的类,然后同时创建XXX.xib文件,然后直接在上面拖拽控件,非常快速,当然也可以手动布局!个人更喜欢可视化布局!在swift下,其实实现的逻辑也是一样的,布局风格也相仿,里面加了一个代理传值,具体代码如下:1,......
  • ios开发之--UISearchDisplayController的简单使用
    控件就不介绍了,UISearchDisplayController就是把searbar和tableview结合到一块了,直接上代码:.h#import<UIKit/UIKit.h>@interfaceThirdViewController:UIViewController<UITableViewDelegate,UITableViewDataSource>{NSArray*_array;NSArray*_filterData;UI......
  • ios开发之--pop到指定页面
    1推出到根视图控制器[self.navigationControllerpopToRootViewControllerAnimated:YES];2推出到指定的视图控制器 for(UIViewController*controllerinself.navigationController.viewControllers){if([controllerisKindOfClass:[AViewControllerclass]]){......
  • ios开发之--ios11适配:TableView的heightForHeaderInSection设置高度无效/UISearchBar
    更新到ios11,然后使用x-code9运行项目,发现tableview的-(CGFloat)tableView:(UITableView*)tableViewheightForHeaderInSection:(NSInteger)section方法不走,所以页面也华丽丽的变成了一排的cell,通过查看文档和资料,原来是ios11默认开启self-sizing,把这个属性关系即可,具体代码如下:sel......
  • ios开发之--NSString和NSArray互转
    将string字符串转换为array数组NSArray*array=[StrcomponentsSeparatedByString:@","];//分隔符逗号将array数组转换为string字符串 NSString*tempString=[mutableArraycomponentsJoinedByString:@","];//分隔符逗号作者:稻草人11223......
  • ios开发之--使用toolbar调整item之间的间隔
    toolbar的item有很多种样式,其实经常使用的就几种,UIBarButtonSystemItemFixedSpace木棍:可以理解为固定的长度UIBarButtonSystemItemFlexibleSpace 弹簧:可以理解为弹性的长度 UIBarButtonItem有两个barbutton的格式  添加到toolbaritems=@[木棍,按钮,弹簧,按钮,木棍];木棍是固定长度......
  • ios开发之--ZHPickView输出格式不出现 +0000
    这样写就不会输出+0000了NSDate*select=[_datePickerdate];NSDateFormatter*dateFormatter=[[NSDateFormatteralloc]init];[dateFormattersetDateFormat:@"yyyy-MM-ddHH:mm:ss"];_resultString=[dateFormatterstringFromDate:select];输出+0000的原因是_......
  • ios开发之--从相机或相册选取图片,并带删除操作的demo
    多选图片的一个效果,如下图:附带有删除操作,比较方便!选取图片使用的是:ZYQAssetPickerController这个第三方类图片压缩用的是自己写的类别:UIImage+ImageSimple附一个demo的下载地址:https://github.com/hgl753951/changeTest.git具体代码就不上传了!可以直接从demo里面看!在此仅做记录用!作......
  • ios开发之--新手引导页的添加
    以往在写启动页面的时候,有时候会直接在启动页里面写,或者自带的vc里面直接写,但是那样并不是很方便,启动页里面往往会添加很多的东西,所以封装成一个单独的类,可以直接使用,即便是后期的更换,或者是其他的工程项目里面需要,直接拖过去,就可以直接使用非常方便!具体代码就不上传了,附demo的下载......