c++
飞翔の荷兰人
这个作者很懒,什么都没留下…
展开
-
区分new函数的用法
new 类型 [初值] 这是开辟[ ]里面初值个连续存储空间的内存并并把地址赋给指针。相当于一个数组。new 类型 (初值表)这是调用一个构造函数,分配一个类型的存储空间并用()内容初始化对象的部分成员。(调用构造函数)有时候数据结构看不懂,真是c++基础知识不扎实所致。...原创 2021-10-01 11:07:05 · 96 阅读 · 0 评论 -
数据结构 链表初探 循环链表 Joseph问题
利用循环链表解约瑟夫问题#include <iostream>using namespace std;class Employee{ private: int number; Employee* next; public: Employee(int n=0):number(n){}; int get_number(){return number;}; void set_next(int value){ next->原创 2021-09-27 19:44:36 · 123 阅读 · 0 评论 -
022 看上去像多态——真正理解多态了吗?
这道题太好了,原来我以为就是一道脑洞题,后来发现实际上这道题在考察我们是否能分清多态和非多态语句。我就没分清,又重新搞明白了#include <iostream>using namespace std;class B { private: int nBVal; public: /*virtual*/void Print() //这两处是否有virtual结果将截然不同 { cout << "nBVal="<< nBVal << e原创 2021-09-16 19:50:50 · 389 阅读 · 2 评论 -
派生类生存期中,构造函数与析构函数的调用顺序测试
#include <iostream>using namespace std;//这个程序测试了 派生类生存期中,它自己,它的基类和封闭类构造与析构的顺序//构造顺序为:基类->封闭类->派生类,析构顺序反之,类似堆栈//尽量写好构造函数,然后在派生类对象,的初始化列表中先后调用其基类的构造函数和其封闭对象的构造函数class Base{ public: int n; Base(int i):n(i){ cout<<"B原创 2021-09-11 17:50:19 · 79 阅读 · 0 评论 -
mooc openjudge 017 二维数组类
本题考点是在类中实现搭建二维数组,同时对[],()运算符实现重载挺有意思的,好玩的地方在于,[]只需重载一次,第二次是不需要重载的代码如下#include <iostream>#include <cstring>using namespace std;class Array2 {// 在此处补充你的代码 public: int x,y;//维度 int **pa; Array2(int x_=0,int y_=0原创 2021-09-11 15:18:54 · 273 阅读 · 0 评论 -
mooc 016openjudge 惊呆!Point竟能这样输入输出 对<<和>>的重载
#include <iostream> using namespace std;class Point { private: int x; int y; public: Point() { };// 在此处补充你的代码 friend ostream & operator<< (ostream & o, Point & p){ cout<<p.x<<","<<p.y;原创 2021-09-11 14:31:41 · 98 阅读 · 0 评论 -
浅拷贝,深拷贝,体会到了链表的好处
军训结束!今天学习c++运算符重载,结合各种构造析构函数,还有利用赋值运算符进行对象间深拷贝,学着实现一个“动态数组”类感受:首先是体会到了浅拷贝和深拷贝的一些区别,对于某些类,含有动态分配的内存的成员,就不能简单的用默认的“=”来拷贝。因为这是内容的直接复制,那么拷贝和被拷贝对象的指针指向同一块地址,一个被delete另一个也就没了必须深拷贝,自己重载“=”运算符,先分配空间,再复制内容。郭炜老师讲解好形象!另一点就是感受到链表的优越性,动态数组如果不用链表,每次增减元素都需要:一个临时存储原创 2021-09-10 12:08:33 · 223 阅读 · 0 评论 -
mooc 魔兽世界1 备战 的代码(可能输出要求和题意不符)
这道题考察类的应用,我试了试那些测试数据,输出应该都是对的,不知道为什么最后总是wrong answer。有可能是因为我是输入一组之后立刻输出一组?而题意是输入全部数据后一并输出吗?如果那个样子的话,我想,需要根据输入的组数n,new一个n*5的二维数组,和一个储存司令部生命值的一维数组,然后把数据都存进去,最后在循环中逐次使用。不过实在不想再做了,最近军训没时间,而且感觉题意不太明确。我的代码如下,c++刚开始练,有问题敬请大家指出输出数据应该是对的其中判断循环跳出的条件,我用的redexis原创 2021-08-30 22:49:53 · 201 阅读 · 0 评论 -
mooc:012这个指针哪来的?对常量成员函数的理解
原题:填空,按要求输出#include <iostream>using namespace std;struct A{ int v; A(int vv):v(vv) { }// 在此处补充你的代码};int main(){ const A a(10); const A * p = a.getPointer(); cout << p->v << endl; return 0;}输入无输出10分析:此处很明显是需要写出g原创 2021-08-27 18:43:05 · 102 阅读 · 0 评论 -
难以发现的Bug?静态成员变量需要在文件中进行一次初始化/声明
今天在郭炜老师的c++程序设计中学到这一点:eg:int CRectangle::nTotalNumber = 0;int CRectangle::nTotalArea = 0;// 必须在定义类的文件中对静态成员变量进行一次说明//或初始化。否则编译能通过,链接不能通过。定义类的时候变量不能够初始化(只有常量可以),所以需要在全局范围,给静态成员变量(本质是全局变量)进行一次声明或者初始化。这个如果没有做,最新版VSCode并不会报错!!!编译通过但是无法运行,调试也不能显示原因。所以一定原创 2021-08-26 23:00:41 · 188 阅读 · 0 评论 -
c++缺省值的理解
缺省值是对函数形参的“默认”,要么在声明处写,要么在定义处写,但不允许两处都写原创 2021-08-24 09:28:12 · 676 阅读 · 0 评论