c++
你只在游戏中存在
这个作者很懒,什么都没留下…
展开
-
c#基础知识
1.多态 1.抽象类(abstract) 1.您不能创建一个抽象类的实例。 2.您不能在一个抽象类外部声明一个抽象方法。 3. 通过在类定义前面放置关键字 sealed,可以将类声明为密封类。当一个类被声明为 sealed 时,它不能被继承。抽象类不能被声明为 sealed。 using System; namespace PolymorphismApplication { abstract class Shape { abstract public int area();转载 2021-09-30 11:39:18 · 150 阅读 · 0 评论 -
力扣多线程题目
按序打印 输入: [1,3,2] 输出: “firstsecondthird” 解释: 输入 [1,3,2] 表示线程 A 将会调用 first() 方法,线程 B 将会调用 third() 方法,线程 C 将会调用 second() 方法。 正确的输出是 “firstsecondthird”。 1.线程锁机制 class Foo { mutex x1;mutex x2; unique_lock<mutex>lock1; unique_lock<mutex&.原创 2021-04-19 22:16:01 · 213 阅读 · 0 评论 -
智能指针的实现
1.智能指针:自己决定资源的释放 使用类来模拟智能指针,且用起来像指针 #include<iostream> #include<Cstring> using namespace std; //智能指针 class Cs{ public:Cs(){}; void test(){cout<<"Cs"<<endl;} }; class Sp{ public: Sp(Cs* obj)//一定要是一个堆对象 因为要使用构造和析构 { m=obj; }原创 2021-03-15 18:17:43 · 120 阅读 · 0 评论 -
写时拷贝 浅拷贝 和深拷贝
采用引用计数器来记录浅拷贝的次数 合理释放资源 当写新的内容时 使用NEW关键字进行深拷贝操作 并将之前的资源释放 且 引用计数-1 #include<iostream> #include<Cstring> using namespace std; struct Refvalue{ Refvalue(const char* pszName); ~Refvalue() { if(m_pszName!=nullptr) { delete m_pszName; m_pszName=nu原创 2021-03-15 16:29:21 · 82 阅读 · 0 评论 -
几种智能指针的比较
1.auto_ptr(已经废弃,没有使用引用计数) 头文件:memory 原因:1.不能有两个auto_ptr对象拥有同一个内部指针的所有权,因为可能在某个时机,两者均会尝试析构这个内部指针。 2.两个auto_ptr对象发生赋值时,内部指针的被拥有的所有权会发生转移,=号右值会丧失所有权,不再指向内部指针(且置为nullptr) 原因1代码: #include<memory> #include<iostream> using namespace std; int main() {原创 2021-03-15 22:45:33 · 271 阅读 · 0 评论