Abaqus C++ API syntax

Abaqus C++ API syntax

本文关键字:syntax API C++ Abaqus      更新时间:2023-10-16

我是 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 db_Odb
{
public:
    std::unordered_map< std::string, odb_Step >& steps();
    // ...
};

所以odb.steps()返回一个可索引的对象(这里我使用了哈希映射(,然后我们通过附加 ["Step-1"] 来查找其中的键,这将调用映射的索引运算符并返回对该映射中单个odb_Step实例的引用。