【发布时间】:2013-10-09 13:37:08
【问题描述】:
我创建自己的类如下:
classdef testClass < handle
properties
value;
map = containers.Map('KeyType','double','ValueType','any');
end
end
我的目标是为testClass 的每个对象维护自己的地图。然而,事实证明整个类只有一个映射对象:testClass 的所有对象都访问同一个containers.Map。例如,如果我创建两个对象如下
a = testClass;
b = testClass;
a.value = 'a';
b.value = 'b';
a.map(1) = 123;
b.map(2) = 321;
最终a 和b 的映射包含两个键值对:
>> a
a =
testClass handle
Properties:
value: 'a'
map: [2x1 containers.Map]
>> b
b =
testClass handle
Properties:
value: 'b'
map: [2x1 containers.Map]
Methods, Events, Superclasses
(key,value) 对 (1,123) 和 (2,321) 都出现在 a.map 和 b.map 中
>> a.map.keys
ans =
[1] [2]
>> a.map.values
ans =
[123] [321]
>> b.map.keys
ans =
[1] [2]
>> b.map.values
ans =
[123] [321]
这是一个错误吗?如何为每个类对象保持独立的containers.Map?
【问题讨论】:
标签: matlab properties map containers matlab-class