Of course it's possible. It is also eased by the addition of C++ struct constructors (making structs nearly (?) identical to classes). Here's a quick example working with your class. Maybe some ideas. Maybe some very very messy code too
Code:
#include <vector>
#include <iostream>
typedef unsigned short USHORT;
typedef struct Triangle
{
USHORT flag;
USHORT something_group;
Triangle()
{
flag = 0;
something_group = 0;
}
Triangle(int a, int b)
{
flag = a;
something_group = b;
}
} TRIANGLE;
class Model
{
public:
void AddTriangle() {
triangles.push_back(Triangle());
}
void AddTriangle(int flag, int something_group) {
triangles.push_back(Triangle(flag, something_group));
}
TRIANGLE GetTriangle(int i) {
return triangles[i];
}
private:
std::vector<TRIANGLE> triangles;
};
int main(int argc, char *argv[])
{
Model model;
model.AddTriangle();
model.AddTriangle(5, 6);
std::cout << model.GetTriangle(1).flag;
return 0;
}