相关疑难解决方法(0)

C++构造函数名后的冒号是做什么的?

冒号运算符(":")在这个构造函数中做了什么?它等同于MyClass(m_classID = -1, m_userdata = 0);

class MyClass {
public:

    MyClass() : m_classID(-1), m_userdata(0) { 
    }

    int m_classID;
    void *m_userdata;
};
Run Code Online (Sandbox Code Playgroud)

c++ constructor initialization-list ctor-initializer

85
推荐指数
2
解决办法
5万
查看次数

构造函数中冒号后的变量

我还在学习C++并试图理解它.我正在查看一些代码并看到:

point3(float X, float Y, float Z) :
x(X), y(Y), z(Z)  // <----- what is this used for
{
}
Run Code Online (Sandbox Code Playgroud)

位于构造函数参数旁边的"x(X),y(Y),z(Z)"是什么意思?

c++ constructor ctor-initializer

22
推荐指数
2
解决办法
8173
查看次数

我什么时候必须使用初始化列表来初始化C++类成员?

假设我有 std::map< std::string, std::string > m_someMapA类的私有成员变量

两个问题:(我问的唯一原因是因为我遇到过这样的代码)

  1. 这条线的目的是什么:

    A::A() : m_someMap()
    
    Run Code Online (Sandbox Code Playgroud)

    现在我知道这是初始化,但你必须这样做吗?我糊涂了.

  2. 什么是默认值std::map< std::string, std::string > m_someMap,C#还定义int,double等始终初始化为defualt 0且对象为null(至少在大多数情况下)那么C++中的规则是什么?是对象初始化为defualt为null和原语为垃圾?当然我正在考虑实例变量.

编辑:

另外,既然大多数人都指出这是一种风格选择而不是必要的,那么:

A :: A():m_someMap(),m_someint(0),m_somebool(false)

c++ stl initialization map

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

C++ 中单号“:”的重要性

可能的重复:
构造函数中这个奇怪的冒号成员语法是什么?

我很少在常规代码中遇到类中的单个冒号,例如:

A::member():b(),c()
{
}
Run Code Online (Sandbox Code Playgroud)

单冒号在这里的重要性是什么?为什么用在这里?有时是强制性的吗?如果是,在哪些情况下?

c++ member-functions

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

为什么这个重载的运算符 &lt;&lt; 以意想不到的方式工作?

我想创建一种方法来向控制台输出添加颜色,其工作方式与std::left和类似std::setw()。我最终得到了下面的代码,它完全按照我想要的方式工作。我了解它是如何工作的,但我想澄清一些事情。

这是代码:

#include <iostream>
#include <Windows.h>

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

enum class color { blue = FOREGROUND_BLUE, green, cyan, red, purple, yellow, white, bright = FOREGROUND_INTENSITY };

class coutColor {
public:

    WORD Color;

    coutColor(color colorvalue) : Color((WORD)colorvalue) {  }
    ~coutColor() { SetConsoleTextAttribute(hConsole, (WORD)7); }

};

std::ostream& operator<<(std::ostream& os, const coutColor& colorout) {

    SetConsoleTextAttribute(hConsole, colorout.Color);
    return os;

}

int main() {

    std::cout << coutColor(color::green) << "This text is green!\n";
    std::cout << color::red << "This text is red! …
Run Code Online (Sandbox Code Playgroud)

c++

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

请帮助理解C++:运算符

请问有人能告诉我这个操作符在C++函数中的功能吗?

class simplecanny
{
    ros::NodeHandle nh_;
    ros::NodeHandle n;
    ros::Publisher pub ;
    image_transport::ImageTransport it_;    
    image_transport::Subscriber image_sub_; //image subscriber 
    image_transport::Publisher image_pub_; //image publisher(we subscribe to ardrone image_raw)
    std_msgs::String msg;
    public:
    *** simplecanny()
        : it_(nh_) ***
    {
        image_sub_ = it_.subscribe("/ardrone/image_raw", 1, &simplecanny::imageCb, this);
        image_pub_= it_.advertise("/arcv/Image",1); 
    }

    ~simplecanny()
    {
        cv::destroyWindow(WINDOW);
    }

    ...
Run Code Online (Sandbox Code Playgroud)

simplecanny() : it_(nh_)构造函数中,我不熟悉该: it_(nh_)部分.它有什么作用?这是运算符重载的情况吗?

提前致谢!

c++ opencv operators ros

0
推荐指数
1
解决办法
381
查看次数