我想知道为什么我会收到以下错误:
Main.cpp的
int main(int argc, char const *argv[]) {
vector<unsigned> topology = {3, 2, 1};
Net (topology);
/* more code */
}
Net.h
class Net {
public:
Net(const std::vector<unsigned> &topology);
}
错误:
Main.cpp:18:10: error: redefinition of 'topology' with a different type: 'Net' vs 'vector<unsigned int>'
Net (topology);
^
Main.cpp:17:22: note: previous definition is here
vector<unsigned> topology = {3, 2, 1};
^
1 error generated.
如果在main中,错误是固定的,而不是:
Net (topology);
我用的是:
Net net(topology);
我知道创建一个要使用的变量更有意义,但如果出于某种原因我想创建一个矢量&lt;净&gt;我想做一些像v.push_back(Net(拓扑))的东西。有人会知道这个错误的原因吗?
答案 0 :(得分:2)
<div id="map"></div>
<script>
function initMap() {
var uluru = {lat: -25.363, lng: 131.044};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBE95rVRz0viHQOBKKikYxl5WsYFROclUU&callback=initMap">
</script>
viewSelectlocation.js
angular.module('myApp.viewSelectlocation', ['ngRoute'])
.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/viewSelectlocation', {
templateUrl: 'viewSelectlocation/viewSelectlocation.html',
controller: 'SelectlocationController'
});
}])
.controller('SelectlocationController', function ($scope, $http, $location) {
});
在此处,您可以使用Net (topology);
的名称创建Net
。我可以看到你试图用topology
作为构造函数参数创建一个匿名Net
,但括号不是那么强大。他们在这里被忽略了。
为您的新topology
命名,以便解析器理解您的意思:
Net
在表达式上下文中,它已经可以工作了;所以,如果你按照你的建议编写Net myNet(topology);
那么它会起作用,所以你可能在问之前就已经尝试过了。