我收到错误消息“由于某种原因没有匹配函数调用‘ANDingOctets’,想帮助我理解为什么吗?这个函数对我来说没问题...(它不是一个完整的功能虽然还没有。)
//
// ANDingOctets.cpp
// Egetskojs
//
// Created by Axel Kennedal on 2014-02-12.
// Copyright (c) 2014 Axel Kennedal. All rights reserved.
//
#include <iostream>
#include <string>
using namespace std;
string ANDingOctets(string octetIP, string & octetSubNet);
int main(){
/* EXAMPLE ADDRESSES
string IPaddress = "192.168.0.12";
string subNetMask = "255.255.255.0";*/
string netID = ANDingOctets("10110110","11111000");
cout << netID << endl;
return 0;
}
string ANDingOctets(string octetIP, string & octetSubNet){
int subNetBits;
for (char index = 0; index < 8; index++) {
if (octetSubNet.at(index) == '1') {
subNetBits++;
}
else break;
}
cout << subNetBits << endl;
return "test";
}
最佳答案
第二个参数是引用:
string ANDingOctets(string octetIP, string & octetSubNet);
^
并且您不能通过非常量引用传递临时字符串 - 这是一个稍微古怪的语言规则,旨在防止您不小心修改错误的内容。
如果函数不打算修改参数,则按值(如第一个参数)或常量引用(const string &
)传递。
如果打算对其进行修改(似乎并非如此),那么您需要传递一个非临时变量:
string subnet = "11111000";
string netID = ANDingOctets("10110110",subnet);
关于c++ - 没有匹配函数调用 'ANDingOctets',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21759791/