gpt4 book ai didi

c++ - 理解 C++ 代码块

转载 作者:行者123 更新时间:2023-11-28 03:39:01 28 4
gpt4 key购买 nike

我得到了一个 C++ 主程序,必须对其进行编码才能正常工作。

由于我对 cpp 有点陌生,所以我在理解代码时遇到了一些困难。

这是代码

int main(int argc, char *argv[]) {
Class::setAtribute("string");
Class(Class::CONSTANT) << "starting up...";
}

一些问题:

  1. 第一行如何在没有变量的情况下工作?是静态的吗?

  2. 第二行对我来说真的很奇怪,我能看出是一个构造函数,它接受一个类 constante,然后以某种方式打印出来?

    如果有人能向我解释这段代码那就太好了!

    提前致谢。

最佳答案

How can the first line work with no variables? Is it static?

Class::setAtribute()必须是类 Class 中的静态函数.静态函数不需要类(对象)的实例。

The second line is really strange for me, what I can make out is a Constructor that takes in a class constante and then prints it out somehow?

对,它构造了一个Class的实例路过Class::CONSTANT作为 Class 的参数构造函数。对于 Class(Class::CONSTANT) << "starting up...";编译必须有一个重载 operator<<形式为:

作为Class的成员函数(David Rodríguez - dribeas):

<some_return_value_type> Class::operator<<(char const*);

或者作为一个独立的函数:

<some_return_value_type> operator<<(Class const&, char const*);

或:

<some_return_value_type> operator<<(Class const&, std::string const&);

或者,在 C++11 中:

<some_return_value_type> operator<<(Class&&, char const*);

事实上,第二个参数可以是任何可以从字符串字面量 char const[] 构造出来的东西。 .或者,或者,Class可以有一个转换运算符,比如 std::ostream& ,所以 std::ostream& std::operator<<(std::ostream&, char const*)取而代之。看着Class其 namespace 中的定义和独立函数必须产生明确的答案。

关于c++ - 理解 C++ 代码块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9934962/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com