文章目录
auto 建议使用的场景,如果你的类型非常长,可以使用,
如果仅仅是 int,string,float等,不建议使用,否则会降低代码的可读性
不建议这么使用auto(一)
如下这么使用auto 会导致代码可读性差,类型比较简短,比如int、float、long、char 等不建议这么使用
不建议这么使用auto(二)
原始常规写法:
可以这么写:
但是如果上面的API 类型改变了,客户端 使用auto,就不需要修改。
经典报错
原因分析:
代码中的错误在于你试图调用 name.size()
函数,而 name
其实是一个 char*
类型的指针,不是一个 std::string
类型的对象。char*
代表一个C风格的字符串,它是一个指向字符数组的指针,不能直接调用 size()
方法。
要解决这个问题,你有以下几种选择:
解决方法一:main函数中 将 char*
转换为 std::string
你可以将 name
转换为 std::string
对象,这样就可以使用 size()
方法:
#include <iostream>
#include <string>
char* GetName() {
return "Cherno";
}
int main() {
auto name = GetName();
int a = std::string(name).size(); // 将char*转换为std::string
std::cout << "Size of name: " << a << std