Visual Studio最近在我身上发疯了,当我所做的只是一个简单的cout时,它给了我这个主题的错误......
CODE:
// Lang.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main{
cout << "hi";
}
答案 0 :(得分:0)
int main{ cout << "hi"; }
由于可以使用{}
语法在C ++中初始化对象,因此您的编译器可能会将此代码解释为尝试创建名为int
的全局main
变量,并使用std::ostream::operator<<
的结果,一个成员函数,它返回对std::ostream
本身的引用。
就像你写的那样:
double some_variable { cout << "hi" }
或者:
double some_variable { cout }
std::ostream
实际上是std::basic_ostream<char, std::char_traits<char>>
。该类型与int
不兼容。
唯一奇怪的是为什么;
之后的"hi"
不会立即导致编译器停止尝试;但是你没有说出你正在使用哪个编译器版本和哪些选项。
在任何情况下,所有这些事实最终都会导致错误消息:
no suitable conversion function from “std::basic_ostream<char, std::char_traits<char>>” to “int” exists
并在:
此外,“hi”后面的分号会突出显示,并显示“expected a}”
解决方案:使main
成为一个函数:
int main() {
cout << "hi";
}