- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个类和两个方法:
public:
bool Search ( const string & oName, const string & oAddr,
string & cName, string & cAddr ) const
{
Company ctmp;
ctmp.own = oName + "|" + oAddr;
int place = searchDupl(ctmp,currentsize,0);
if (place < 0)
return false;
else
{
size_t pos = c[place].cmpn.find(' ');
cName = c[place].cmpn.substr(0,pos);
cAddr = c[place].cmpn.substr(pos+1);
return true;
}
}
私下里,我有 searchDupl:
int searchDupl(Company cmp,int imax,int imin)
{
if (imax < imin)
return -1;
else
{
int mid = imin + ((imax - imin)/2);
if (c[mid].own > cmp.own)
{
return searchDupl(cmp,mid-1,imin);
}
else if (c[mid].own < cmp.own)
{
return searchDupl(cmp,imax,mid+1);
}
else
{
return mid;
}
}
}
c 是一个动态数组,它在私有(private)部分定义并在构造函数中初始化。 currentsize 是 int 类型的变量(也是私有(private)的,在构造函数中初始化),它定义了 c 中元素的数量。
当我尝试使用 g++ 编译它时,出现以下错误:
main.cpp: In member function ‘bool CCompanyIndex::Search(const string&, const string&, std::string&, std::string&) const’:
main.cpp:69:54: error: no matching function for call to ‘CCompanyIndex::searchDupl(Company&, const int&, int) const’
main.cpp:69:54: note: candidate is:
main.cpp:106:13: note: int CCompanyIndex::searchDupl(Company, int, int) <near match>
main.cpp:106:13: note: no known conversion for implicit ‘this’ parameter from ‘const CCompanyIndex* const’ to ‘CCompanyIndex*’
我不知道哪里出了问题。
最佳答案
您的第一个方法声明为 const
-方法
bool Search ( const string & oName,
const string & oAddr,
string & cName,
string & cAddr ) const
// ^^^^^ here
{
// ...
}
表示 this
的类型是const CCompanyIndex* const
.当您尝试从该方法中调用第二个方法时,该调用等效于 this->searchDupl(ctmp,currentsize,0)
.这就是为什么 this
的类型在你的情况下很重要。您需要 CCompanyIndex
的可变实例,即,您需要 this
类型为 CCompanyIndex* const
因为第二种方法声明为
int searchDupl(Company cmp,int imax,int imin)
// ^^^ no const here
{
// ...
}
因此您的代码无法编译。要修复它,您应该将第二种方法声明为 const
以及该方法显然没有改变类的状态:
int searchDupl(Company cmp,int imax,int imin) const
{
// ...
}
关于c++ - "No known conversion for implicit ‘this’ 参数“错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15448369/
016-03-07T09:10:16.992-0600 W NETWORK [HostnameCanonicalizationWorker] Failed to obtain name info f
我有一个工作的 C 程序,其中字符串数组的长度在编译时已知。它是: char array_person_name[3][101]; char person_name[101] = ""; ... st
我正在做一个需要Graph DB 的项目。我正在使用 C# .Net Core 开发项目。我不得不选择 ArangoDB 作为这个项目的 Graph DB。不幸的是,.Net 没有官方驱动程序。这就是
我正在尝试使用 DataContractSerializer 将对象序列化为 Xml。我有以下类(class); [ActiveRecord(Lazy = true)] [KnownType(type
我有: 身份服务器 4, 具有 OpenId Connect 和混合流的 Mvc 应用 WebApi 应用 假设用户已经获得带有 id_token 和访问 token 的 cookie。然后他从 mv
我有: 身份服务器 4, 具有 OpenId Connect 和混合流的 Mvc 应用 WebApi 应用 假设用户已经获得带有 id_token 和访问 token 的 cookie。然后他从 mv
我有一个简单的 Asp.Net Core Azure Web 应用程序,需要向本地 Rest 服务发出 http get 请求。此 Rest 服务托管在 IIS 上,仅针对端口 443 设置了绑定(b
这个问题可能是一个很好回答的问题,但不幸的是我不知道正确的术语来正确地问它,所以...... template class __bit_iterator; 有人可以在这里解释最后一个模板参数吗?我唯
在基于ASP.NET Core 1.1.1开发的VS2017 Ver 15.3.3应用程序中,我使用Account confirmation and password recovery in ASP.
我有一个应用程序(aspnet core app 3.1),在启动期间使用以下代码从 azure blob 存储加载数据: BlobClient client = new BlobClient(loa
我有一个应用程序(aspnet core app 3.1),在启动期间使用以下代码从 azure blob 存储加载数据: BlobClient client = new BlobClient(loa
我想知道如何查询Wikidata通过使用别名(“也称为”)。 现在我正在努力 SELECT ?item WHERE { ?item rdfs:aliases ?alias. FILTER(CONTAI
这是一个 PNG 类,在类文档中列出了两个构造函数,如下所示。 PNG::PNG ( string const & file_name ) Creates a PNG image
这就是我目前拥有的,以及我的教授提供的扫描仪。 #include "Similarity.h" #include "Scanner.h" using namespace std; int Simila
我想从我的 asp 页面连接到 mysql 数据库。因此,根据我的托管服务提供商的说法,我使用了连接字符串,其中服务器被指定为“localhost:3309” Dim myConnection As
我正在尝试集成的第三方应用程序,要求将文件放入 .well-known文件夹。如何使该文件可从 URL 访问? ( example.com/.well-known/token.txt )。站点部署为
尝试学习 Hibernate,我正在尝试学习如何执行 NamedQuries但每次我都会收到 Exception in thread "main" org.hibernate.MappingExcep
我正在尝试将 PWA 发布到 Google Playstore。我被困在数字 Assets 握手中。 这是我的 nginx conf - location /asd/ { default_t
我正在尝试设置 wordpress xml-rpc带 rails : blog = XMLRPC::Client.new("localhost/blog", "/xmlrpc.php", 80) 但是
我在我的 nginx 配置中有这个: location ~ /\. { deny all; } location /.well-known/ { allow all; } 但是我还是不
我是一名优秀的程序员,十分优秀!