草庐IT

GUILayout类和EditorGUILayout类

全部标签

【C++】异常+智能指针+特殊类和类型转换

上天可能觉得我太孤独,派你来和我一起对抗虚无。文章目录一、异常1.传统处理错误的方式vs异常2.异常的使用规则2.1异常的抛出和捕获原则2.2在函数调用链中异常栈展开匹配原则3.异常安全和异常规范4.自定义异常体系5.标准库的异常体系和异常的优缺点二、智能指针1.为什么需要智能指针?2.智能指针的使用和原理2.1auto_ptr2.2unique_ptr2.3shared_ptr2.3.1拷贝和赋值(在堆上创建引用计数)2.3.2线程安全(和引用计数一样,在堆上申请一把锁)2.3.3循环引用(weak_ptr,可以指向,但不参与资源的管理)2.3.4定制删除器(其实就是可调用对象)3.C++1

learn C++ NO.6——类和对象(4)

1.再谈构造函数1.1.构造函数体赋值在创建类的对象时,编译器回去调用类的构造函数,来各个成员变量一个合适的值。classDate{public:Date(intyear,intmonth,intday){_year=year;_month=month;_day=day;}private:int_year;int_month;int_day;};虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化,构造函数体中的语句只能将其称为赋初值,而不能称作初始化。因为初始化只能初始化一次,而构造函数体内可以多次赋值。1.2.初始化列表类的构造函数可以使用初始化列表

c++ - C++ 中定义异常类和抛出异常的标准方法

我想构建一个类,它的函数可能会抛出我想在使用时捕获的异常。我从标准异常类继承my_exception。我实现了what()函数,以便它返回一个存储在私有(private)字符串变量中的字符串我认为将异常定义为嵌套类会更好,就像在iostream库中使用ios_base::failure完成的方式一样。我不太确定的是,我应该在哪里以及如何定义my_excpetion的对象。我希望我能看到iostream函数的内部代码,看看它们是如何做到的。我考虑了几个选项:对于每个异常原因,我都可以定义一个my_exception的静态实例,并使用一个构造函数获取一个字符串并将其保存到我的私有(priv

c++ - C++ 中定义异常类和抛出异常的标准方法

我想构建一个类,它的函数可能会抛出我想在使用时捕获的异常。我从标准异常类继承my_exception。我实现了what()函数,以便它返回一个存储在私有(private)字符串变量中的字符串我认为将异常定义为嵌套类会更好,就像在iostream库中使用ios_base::failure完成的方式一样。我不太确定的是,我应该在哪里以及如何定义my_excpetion的对象。我希望我能看到iostream函数的内部代码,看看它们是如何做到的。我考虑了几个选项:对于每个异常原因,我都可以定义一个my_exception的静态实例,并使用一个构造函数获取一个字符串并将其保存到我的私有(priv

c++ - 从 C++ 到 Haskell 类和状态

我必须转换这个C++代码classA{public:intx_A;voidsetX_A(intnewx){x_A=newx;}voidprintX_A(){printf("x_Ais%d",x_A);}};classB:publicA{public:intx_B;voidsetX_B(intnewx){x_B=newx;}voidprintX_B(){printf("x_Bis%d",x_B);}};main(){AobjA;BobjB;objA.setX_A(2);objA.printX_A();objB.printX_A();objB.setX_B(5);objB.printX_B

c++ - 从 C++ 到 Haskell 类和状态

我必须转换这个C++代码classA{public:intx_A;voidsetX_A(intnewx){x_A=newx;}voidprintX_A(){printf("x_Ais%d",x_A);}};classB:publicA{public:intx_B;voidsetX_B(intnewx){x_B=newx;}voidprintX_B(){printf("x_Bis%d",x_B);}};main(){AobjA;BobjB;objA.setX_A(2);objA.printX_A();objB.printX_A();objB.setX_B(5);objB.printX_B

c++ - 在 C++ 中共享相同名称的类和命名空间

假设我在命名空间“abc”中有一个名为“foo”的类...namespaceabc{classfoo{inta;intb;};}...然后说我在不同的命名空间中有另一个名为“abc”的类#include"foo.h"namespacefoo{classabc{abc::a=10;};}abc::a不会是已定义类型,因为它将搜索类abc,而不是命名空间abc。我将如何正确引用另一个命名空间中的对象,其中另一个命名空间与我所在的类具有相同的名称? 最佳答案 您可以使用::abc::xx,即将变量或类型标识为其绝对命名空间路径。如果您不指

c++ - 在 C++ 中共享相同名称的类和命名空间

假设我在命名空间“abc”中有一个名为“foo”的类...namespaceabc{classfoo{inta;intb;};}...然后说我在不同的命名空间中有另一个名为“abc”的类#include"foo.h"namespacefoo{classabc{abc::a=10;};}abc::a不会是已定义类型,因为它将搜索类abc,而不是命名空间abc。我将如何正确引用另一个命名空间中的对象,其中另一个命名空间与我所在的类具有相同的名称? 最佳答案 您可以使用::abc::xx,即将变量或类型标识为其绝对命名空间路径。如果您不指

C++核心编程—类和对象,类的三大特性——封装、继承、多态

纵有疾风起,人生不言弃。本文篇幅较长,如有错误请不吝赐教,感谢支持。💬文章目录一.类和对象的概念①什么是对象?②抽象和类1.类的基本概念2.类的声明与定义:3.对象的创建与使用二.类的封装①为什么有封装?②封装和访问权限③尽量把属性设置为私有权限④C++中结构体(struct)和类(class)的区别:三.对象的构造函数和析构函数①对象的初始化和清理②构造函数和析构函数1.构造函数和析构函数作用和语法2.构造函数点和析构函数的注意事项③构造函数的分类1.构造拷贝函数:2.拷贝构造函数中形参要用引用3.拷贝构造函数调用时机④构造函数调用规则四.多个对象的构造函数和析构函数①构造函数的初始化列表1

c++ - 混合类和结构

我很清楚differencebetweenclassandstruct,但是我很难权威地说这是否定义明确://declarefoo(struct)structfoo;//definefoo(class)classfoo{};//instanceoffoo,claimingtobeastructagain!Welldefined?structfoobar;//mixingclassandstructlikethisupsetsatleastonecompiler(namesaremangleddifferently)constfoo&test(){returnbar;}intmain()