小编jam*_*ieQ的帖子

使用cout << operator时,如何使用前导零填充int?

我想cout输出一个带前导零的int,因此值1将打印为001,值25打印为025.我怎样才能做到这一点?

c++ formatting cout

232
推荐指数
5
解决办法
20万
查看次数

在C++中用另一个类初始化类?

我在头文件中有这个定义:

class Owner
{
private:
    // Fields
    Child* _myChild1;
public:
    // Constructors
    Owner();
    Owner(const char childName[]);
};
Run Code Online (Sandbox Code Playgroud)

这个实现:

Owner::Owner(const char childName[])
{
//do some operations - children must be created after these ops
_myChild = new Child(childName);
}
Run Code Online (Sandbox Code Playgroud)

这个main()函数:

int main()
{
Owner("child1"); 
}
Run Code Online (Sandbox Code Playgroud)

有些问题,请在这里请耐心等待,我刚开始使用C++ ..

  • 鉴于子类在编译时是已知的,我认为我不需要在堆上使用'new'创建它们吗?如果是这样的话?我已尝试在Owner实现中使用此语法,但编译器发出呻吟声('术语不计算函数..'):

_myChild(childName);

  • 但是,在实现中使用这种语法是可以的,为什么呢?

Child _myChild(childName);

  • 我使用的范例是否正确?换句话说,作为一般规则,如果一个类包装另一个类,那么所有者是否只持有指向它包装的类的指针?
  • 你会有更多有经验的人这样做吗?

谢谢你的任何建议..

c++ class-design

4
推荐指数
1
解决办法
9475
查看次数

是否为静态类重载了ostream &lt;&lt;运算符?

我有一个(简化的)静态全局类和<<操作符重载,如下所示:

class Global
{
    private:
    static int counter;
    Global(){};

    public:
    friend ostream& operator<<(ostream &out, Global &global);
}

ostream& operator<< (ostream &out, Global &global)
{
    //... do output
    return out;
}
Run Code Online (Sandbox Code Playgroud)

我希望能够将静态引用传递给cout:

cout << Global
Run Code Online (Sandbox Code Playgroud)

但是,<<操作符需要一个实例,但实际上不存在此全局类的实例。有没有办法解决?

谢谢你的帮助。

c++ operator-overloading

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