Abaqus C++ API 语法
Abaqus C++ API syntax
我是 Abaqus C++ 的新手 API 并且对语法有疑问。
db_Odb& odb = openOdb("file.odb");
odb_Step& step = odb.steps()["Step-1"];
odb_Instance& instance =
odb.rootAssembly().instances()["PART-1-1"];
有几个实例的语法类似于 odb.steps()["Step-1"]
。
我的问题在odb.steps()["Step-1"]
:
odb
是一个对象吗?
- 是
steps()
对象的方法吗?
- 什么是
steps()["str"]
?我没有在常规 C++ 语法中看到它。
回答你的问题:对对对,还有索引运算符。这都是标准的 C++ 语法。
在完全不知道所讨论的库的情况下,class 可能看起来像这样:
class db_Odb
{
public:
std::unordered_map< std::string, odb_Step >& steps();
// ...
};
所以 odb.steps()
returns 一个可索引对象(这里我使用了哈希映射),然后我们通过附加 ["Step-1"]
来查找其中的键,它调用地图的 index operator 和 returns 对该地图中单个 odb_Step
实例的引用。
我是 Abaqus C++ 的新手 API 并且对语法有疑问。
db_Odb& odb = openOdb("file.odb");
odb_Step& step = odb.steps()["Step-1"];
odb_Instance& instance =
odb.rootAssembly().instances()["PART-1-1"];
有几个实例的语法类似于 odb.steps()["Step-1"]
。
我的问题在odb.steps()["Step-1"]
:
odb
是一个对象吗?- 是
steps()
对象的方法吗? - 什么是
steps()["str"]
?我没有在常规 C++ 语法中看到它。
回答你的问题:对对对,还有索引运算符。这都是标准的 C++ 语法。
在完全不知道所讨论的库的情况下,class 可能看起来像这样:
class db_Odb
{
public:
std::unordered_map< std::string, odb_Step >& steps();
// ...
};
所以 odb.steps()
returns 一个可索引对象(这里我使用了哈希映射),然后我们通过附加 ["Step-1"]
来查找其中的键,它调用地图的 index operator 和 returns 对该地图中单个 odb_Step
实例的引用。