首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取错误:‘(’标记前缺少模板参数

获取错误:‘(’标记前缺少模板参数
EN

Stack Overflow用户
提问于 2013-07-22 04:59:38
回答 3查看 6.8K关注 0票数 1

我不知道出了什么问题。我是c++的新手,但我看不出有什么问题。我已经阅读了一堆其他的堆栈溢出页面,但它们似乎都没有解决我的问题。

这是来自终端的

代码语言:javascript
运行
复制
Joshs-MacBook-Pro:desktop Josh$ g++ BinaryCompare.cpp
BinaryCompare.cpp: In function ‘int main()’:
BinaryCompare.cpp:9: error: missing template arguments before ‘(’ token

这是代码。

代码语言:javascript
运行
复制
#include <iostream>
#include <string>

using namespace std;

bool isGreater(string a, string b);

int main (){
    if(greater("11", "00"))
        cout << "hello"<<endl;
  return 0;
}

bool isGreater(string a, string b){
    if(a.length() > b.length() ) return false;
    if(a.length() < b.length() ) return true;

    for(int i= 0; i < a.length(); i++){
        if(a[i] != b[i]){
            if(a[i] == '1') return false;
            return true;
        }
    }
    return false;   
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-22 05:04:00

这就是为什么using namespace std并不总是一个好主意的一个很好的例子。

你打错了

代码语言:javascript
运行
复制
if(greater("11", "00"))

这确实应该是

代码语言:javascript
运行
复制
if(isGreater("11", "00"))

...and设法达到你刚刚批发进口的a class template defined in the std namespace的名字。从而产生令人困惑的错误消息。

票数 5
EN

Stack Overflow用户

发布于 2013-07-22 05:01:30

在if中,第9行上的greater()应该替换为isGreater()

票数 2
EN

Stack Overflow用户

发布于 2013-07-22 05:03:38

除了修复在第9行调用isGreatergreater调用之外,您可能还希望确保用零填充字符串,直到两个字符串的长度相同,而不是只在isGreater的前两行返回truefalse

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17776850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档