小编tam*_*aka的帖子

在哪种情况下删除指针

我的以下问题是关于内存管理.我有一个int变量没有在类中动态分配,比如说invar1.我将此int的内存地址传递给另一个类构造函数.那个班级做到了这个:

class ex1{
    ex1(int* p_intvar1)
    {
       ptoint = p_intvar1;
    }

    int* ptoint;
};
Run Code Online (Sandbox Code Playgroud)

我应该删除ptoint吗?因为它具有动态分配的int的地址,所以我认为我不需要删除它.

我再次向一个带有new运算符的类声明一个对象:

objtoclass = new ex1();
Run Code Online (Sandbox Code Playgroud)

我将它传递给另一个班级:

class ex2{
    ex2(ex1* p_obj)
    {
       obj = p_obj;
    }

    ex1* obj;
};
Run Code Online (Sandbox Code Playgroud)

当我已经删除了objtoclass时,我应该删除obj吗?

谢谢!

c++

14
推荐指数
2
解决办法
894
查看次数

如何在SDL中获取屏幕大小

我正在尝试使用SDL和C++编写程序.如何在SDL中获得屏幕的宽度和高度(以像素为单位)?我试图获得屏幕的宽度而不是窗口的宽度....

c++ sdl-2

6
推荐指数
2
解决办法
1万
查看次数

运算符<<重载如何工作?

给出一个类:

struct employee {
    string name;
    string ID;
    string phone;
    string department;
};
Run Code Online (Sandbox Code Playgroud)

以下功能如何工作?

ostream &operator<<(ostream &s, employee &o)
{
 s << o.name << endl;
 s << "Emp#: " << o.ID << endl;
 s << "Dept: " << o.department << endl;
 s << "Phone: " << o.phone << endl;

 return s;
}
Run Code Online (Sandbox Code Playgroud)

cout << e;生成给定的格式化输出employee e.

示例输出:

Alex Johnson
Emp#: 5719
Dept: Repair
Phone: 555-0174
Run Code Online (Sandbox Code Playgroud)

我无法理解ostream功能是如何工作的.它如何获得参数"ostream&s"?它如何重载"<<"运算符以及<<运算符如何工作?如何用它来写出关于员工的所有信息?有人可以用外行的话回答这些问题吗?

c++

5
推荐指数
1
解决办法
544
查看次数

标签 统计

c++ ×3

sdl-2 ×1