public: constexpr Student(const char* name, int age) : name_(name), age_(age) {} void print() const { cout << name_ << ' ' << age_ << '\\n'; } private: const char* name_; int age_; }; void test() { constexpr Student s{"zhangsan", 18}; s.print(); } 总结 cons...
#include <iostream> using namespace std; //自定义类型的定义 class myType { public: constexpr myType(const char *name,int age):name(name),age(age){}; constexpr const char * getname(){ return name; } constexpr int getage(){ return age; } private: const char* name; int age; /...
const int cV = 10;cv是顶层const,本身不能改变 char const * p2;p2是底层const,p2的本身值可以改变,但所指内容不可以改变 char * const p3;p3是顶层const,p3的本身值不可以改变 const char* const p4;p4即是顶层const,又是底层const 注: 对于上述模板RCType<T>是无法移除p2这种底层const,如果要移除,请用...
constexprmyType(constchar*name,intage):name(name),age(age){}; constexprconstchar*getname(){ returnname; } constexprintgetage(){ returnage; } private: constchar*name; intage; //其它结构体成员 }; intmain() { constexprstructmyType mt{"zhangsan",10}; constexprconstchar*name=mt.getname...
const char* name_; int age_; }; void test() { constexpr Student s{"zhangsan", 18}; s.print(); } 总结 const可以修饰编译期和运行期的常量,而constexpr只能修饰编译期的常量 const在仍然可以通过const_cast类型转换来修改值,而constexpr是不可以修改的,其实可以将const理解为只读变量更符合其含义 ...
char const* p1 = "abcd";// 表示指针p指向的内容不能改变 但是p指向的位置是可以变得 p1 = p0; //(*p1)++; p1++; cout << p1 << " " << p0 << endl; cout << "---" << endl; } { int a = 3; int* const b = &a; //就...
定义一个指向字符常量的指针,这里,ptr是一个指向 char* 类型的常量,所以不能用ptr来修改所指向的...
是constexpr char * const my_str = "hello";吗 不能,因为字符串文字不能转换为指向char* 的 * ...
constexprStudent(constchar*name,intage):name_(name),age_(age){} voidprint()const{cout<<name_<<' '<<age_<<'\n';} private: constchar*name_; intage_; }; voidtest(){ constexprStudent s{"zhangsan",18}; s.print(); } 总结
classStudent{public:constexprStudent(constchar*name,intage):name_(name),age_(age){}voidprint()const{cout<<name_<<' '<<age_<<'\n';}private:constchar*name_;intage_;};voidtest(){constexprStudent s{"zhangsan",18};s.print();}