This question already has an answer here: Meaning of “const” last in a C++ method declaration? 7 answers 这是一个const方法,这意味着你可以调用它const对象,也不会改变非mutable成员,也不会调用其他非const方法。 struct X { void foo(); int x; void goo() const; }; void X::goo() const { x = 3; //illegal foo(); //illegal } //... const X x; x.foo(); //illegal x.goo(); //OKAY
这个问题在这里已经有了答案: C ++方法声明中最后一个“const”的含义? 7个答案 这是一个const方法,这意味着你可以调用它const对象,也不会改变非mutable成员,也不会调用其他非const方法。 struct X { void foo(); int x; void goo() const; }; void X::goo() const { x = 3; //illegal foo(); //illegal } //... const X x; x.foo(); //illegal x.goo(); //OKAY 基本上,这意味着该方法不会修
Possible Duplicates: c++ const use in class methods Meaning of “const” last in a C++ method declaration? int operator==(const AAA &rhs) const; This is a operator overloading declaration. Why put const at the end? Thanks The const keyword signifies that the method isn't going to change the object. Since operator== is for comparison, nothing needs to be changed. Therefore, it is
可能重复: c ++ const在类方法中使用 C ++方法声明中最后一个“const”的含义? int operator==(const AAA &rhs) const; 这是一个运算符重载声明。 为什么把const放在最后? 谢谢 const关键字表示该方法不会更改该对象。 由于operator==用于比较,因此不需要改变。 因此,它是const 。 对于像operator=那样修改对象的方法,它必须被省略。 它可以让编译器仔细检查你的工作,以确保你没有做任何你不应该做的事
Possible Duplicate: Meaning of “const” last in a C++ method declaration? In the below function declaration, const char* c_str ( ) const; what does the second const do ? It means the method is a "const method" A call to such a method cannot change any of the instance's data (with the exception of mutable data members) and can only call other const methods. Const methods c
可能重复: C ++方法声明中最后一个“const”的含义? 在下面的函数声明中, const char* c_str ( ) const; 第二个const做什么? 这意味着该方法是一个“常量方法”对这种方法的调用不能更改任何实例的数据(除了mutable数据成员)并且只能调用其他常量方法。 可以在const或非const实例上调用Const方法,但只能在非const实例上调用非const方法。 struct Foo { void bar() const {} void boo() {} }; Foo f0; f0.bar
This question already has an answer here: Meaning of “const” last in a C++ method declaration? 7 answers $9.3.1/3 states- "A nonstatic member function may be declared const, volatile, or const volatile. These cvqualifiers affect the type of the this pointer (9.3.2). They also affect the function type (8.3.5) of the member function; a member function declared const is a const member fu
这个问题在这里已经有了答案: C ++方法声明中最后一个“const”的含义? 7个答案 $ 9.3.1 / 3个州 - “一个非静态成员函数可能被声明为const,volatile或const volatile,这些cvqualifiers影响这个指针的类型(9.3.2),它们也影响成员函数的函数类型(8.3.5);一个成员函数声明的const是一个const成员函数,一个声明为volatile的成员函数是一个volatile成员函数,而一个声明为const volatile的成员函数是一个const volati
This question already has an answer here: Meaning of “const” last in a C++ method declaration? 7 answers 这意味着该方法不会修改成员变量(除了声明为mutable的成员),所以它可以在类的常量实例上调用。 class A { public: int foo() { return 42; } int bar() const { return 42; } }; void test(const A& a) { // Will fail a.foo(); // Will work a.bar(); } Note also, that whil
这个问题在这里已经有了答案: C ++方法声明中最后一个“const”的含义? 7个答案 这意味着该方法不会修改成员变量(除了声明为mutable的成员),所以它可以在类的常量实例上调用。 class A { public: int foo() { return 42; } int bar() const { return 42; } }; void test(const A& a) { // Will fail a.foo(); // Will work a.bar(); } 还要注意的是,尽管成员函数不能修改未标记为可变的
This question already has an answer here: Meaning of “const” last in a C++ method declaration? 7 answers A const method can be called on a const object: class CL2 { public: void const_method() const; void method(); private: int x; }; const CL2 co; CL2 o; co.const_method(); // legal co.method(); // illegal, can't call regular method on const object o.const_method();
这个问题在这里已经有了答案: C ++方法声明中最后一个“const”的含义? 7个答案 const方法可以在const对象上调用: class CL2 { public: void const_method() const; void method(); private: int x; }; const CL2 co; CL2 o; co.const_method(); // legal co.method(); // illegal, can't call regular method on const object o.const_method(); // legal, can call const method on a regular
This question already has an answer here: Meaning of “const” last in a C++ method declaration? 7 answers It means that *this is const inside that member function, ie it doesn't alter the object. The keyword this is a prvalue expression whose value is the address of the object for which the function is called. The type of this in a member function of a class X is X* . If the member fu
这个问题在这里已经有了答案: C ++方法声明中最后一个“const”的含义? 7个答案 这意味着*this是该成员函数中的const ,即它不会更改该对象。 关键字this是一个prvalue表达式,其值是调用该函数的对象的地址。 的类型的this类中的成员函数X是X* 。 如果成员函数声明为const的类型, this是const X* 。 [第9.3.2节§1] 在const成员函数中,调用该函数的对象通过const访问路径访问; 因此, const成员函数不得修改对象
This question already has an answer here: What does the C++ standard state the size of int, long type to be? 24 answers An unsigned short will consume half the memory of a signed int (2 bytes vs 4 bytes). Because the processor often needs to work on whole integers the execution might be slightly slower since it needs to unpack the shorts. In your case you could also use a signed short, it
这个问题在这里已经有了答案: C ++标准规定int,long类型的大小是什么? 24个答案 一个无符号的short将占用一个有符号int的一半内存(2个字节vs 4个字节)。 由于处理器经常需要处理整个整数,所以执行速度可能会稍微慢一些,因为它需要解开短路。 在你的情况下,你也可以使用一个有符号的短,范围从大约-32K到+ 32K。 取决于:可以说你想创建一个大小为1000000的数组 int foo[1000000] ={};//4000000 byte unsigned
This question already has an answer here: What do the C and C++ standards say about bit-level integer representation and manipulation? 8 answers What does the C++ standard state the size of int, long type to be? 24 answers The C standard discusses the representations of integer types in section 6.2.6.2. It specifies a binary representation for integer types. For unsigned types, the bit
这个问题在这里已经有了答案: C和C ++标准对比特级整数表示和操作有何看法? 8个答案 C ++标准规定int,long类型的大小是什么? 24个答案 C标准在6.2.6.2节中讨论了整数类型的表示。 它指定整数类型的二进制表示。 对于无符号类型,这些位分为值位和填充位。 填充位对值没有贡献; 不需要任何填充位。 对于签名类型,只有一个符号位。 带符号的类型可以用符号和幅度,二进制补码或补码表示(二进制补码几乎适用于
This question already has an answer here: What does the C++ standard state the size of int, long type to be? 24 answers The actual size of integer types varies by implementation. The standard only requires size relations between the data types and minimum sizes for each data type: The relation requirements are that the long long is not smaller than long , which is not smaller than int , w
这个问题在这里已经有了答案: C ++标准规定int,long类型的大小是什么? 24个答案 整数类型的实际大小因实现而异。 该标准只需要数据类型与每种数据类型的最小尺寸之间的大小关系: 关系要求是long long不小于long ,不小于int ,不小于short 。 由于char的大小始终是最小支持的数据类型,所有其他数据类型不能小于。 char的最小大小为8位, short和int的最小大小为16位, long为32位, long long必须至少包含64位。