Синтаксис API Abaqus C ++ - PullRequest
       28

Синтаксис API Abaqus C ++

2 голосов
/ 26 марта 2019

Я новичок в 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 ++.

1 Ответ

0 голосов
/ 26 марта 2019

Чтобы ответить на ваши вопросы: да, да, и оператор индекса. Это все стандартный синтаксис C ++.

Не зная библиотеки, о которой идет речь, класс может выглядеть примерно так:

class db_Odb
{
public:
    std::unordered_map< std::string, odb_Step >& steps();
    // ...
};

Итак, odb.steps() возвращает индексируемый объект (здесь я использовал хеш-карту), а затем мы ищем ключ в нем, добавляя ["Step-1"], который вызывает индексный оператор карты и возвращает ссылку на один экземпляр odb_Step в этой карте.

...