#include <vector>
using namespace std ;
class CVX_Obj
{
public:
CVX_Obj(){};
~CVX_Obj(){};
void printobj()
{
cout<<"进入Obj"<<endl ;
}
};
class CVX_Environment
{
public:
CVX_Environment(){};
~CVX_Environment(){};
void printEnvironment()
{
cout<<"进入Env"<<endl ;
}
CVX_Obj*pObj;//初始化指针
};
class CVX_FEA
{
public:
CVX_FEA()
{
pEnv->printEnvironment();
}
~CVX_FEA(){};
CVX_Environment* pEnv;//初始化指针
};
class VoxCad
{
public:
VoxCad()
{
MainFEA.pEnv=&MainEnvironment;
MainEnvironment.pObj=&MainObj;
}
~VoxCad(){};
CVX_FEA MainFEA;
CVX_Obj MainObj;
CVX_Environment MainEnvironment;
void printt()
{
cout<<"进入VoxCad"<<endl ;
MainFEA.pEnv->pObj->printobj();
MainFEA.PRT();
}
};
int main()
{
VoxCad voxcad;
voxcad.printt();
system("pause");
}
相关文章
- C++智能指针父类和子类之间的转换
- [C++规范] 访问类成员变量的方式:直接访问还是通过成员函数访问?
- [C++规范] 访问类成员变量的方式:直接访问还是通过成员函数访问?
- C++ 基类指针和派生类指针之间的转换
- C++基类指针或引用指向或引用派生类对象(实现动态多态四种手段)父类指针访问子类成员变量(需要dynamic_cast)
- C++中,基类的指针指向派生类的对象
- 在C++类的私有成员中,指针未显式初始化,为什么会导致野指针异常?如何避免这种情况?
- C++ 通过对象方式 、指针方式两种方式去访问成员变量(属性或者方法)
- 向量体系结构(5):步幅&&集中一分散- 在C语言中,矩阵的行存储是连续的,但列之间存在较大的步幅。以矩阵D为例,如果要连续访问其列中的元素(内层循环的目的),每次迭代需要跳过整个行的宽度。Fortran语言通常以列主序存储数组,意味着矩阵的列元素在内存中是连续的,意味着访问其连续行元素时需要跨过较多内存空间。 编译器在向量化代码时,需要识别并优化这些步幅问题,以便有效地利用向量处理器的并行能力。如果不对循环进行重新排序或调整访问模式,处理器可能无法有效加载连续的向量元素到寄存器中进行并行运算,这会影响性能。 编译器可以通过循环变换(如循环展开、循环交换等)来改善内存访问模式,以减小步幅或使其适应向量寄存器的宽度。例如,通过改变循环顺序,使内存访问变得更加连续,从而减少跨步读取的次数。 向量处理器处理非连续数据
- Java 数据结构-特点: 代表一个队列,通常按照先进先出(FIFO)的顺序操作元素。 实现类: LinkedList, PriorityQueue, ArrayDeque。 堆(Heap) 堆(Heap)优先队列的基础,可以实现最大堆和最小堆。 PriorityQueue<Integer minHeap = new PriorityQueue<>; PriorityQueue<Integer maxHeap = new PriorityQueue<>(Collections.reverseOrder); 树(Trees) Java 提供了 TreeNode 类型,可以用于构建二叉树等数据结构。 class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } 图(Graphs) 图的表示通常需要自定义数据结构或使用图库,Java 没有内建的图类。 以上介绍的只是 Java 中一些常见的数据结构,实际上还有很多其他的数据结构和算法可以根据具体问题选择使用。 其他一些说明 以下这些类是传统遗留的,在 Java2 中引入了一种新的框架-集合框架(Collection),我们后面再讨论。 枚举(Enumeration) 枚举(Enumeration)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。 枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式。 例如,枚举定义了一个叫nextElement 的方法,该方法用来得到一个包含多元素的数据结构的下一个元素。 关于枚举接口的更多信息,请参见枚举(Enumeration)。 位集合(BitSet) 位集合类实现了一组可以单独设置和清除的位或标志。 该类在处理一组布尔值的时候非常有用,你只需要给每个值赋值一"位",然后对位进行适当的设置或清除,就可以对布尔值进行操作了。 关于该类的更多信息,请参见位集合(BitSet)。 向量(Vector) 向量(Vector)类和传统数组非常相似,但是Vector的大小能根据需要动态的变化。 和数组一样,Vector对象的元素也能通过索引访问。 使用Vector类最主要的好处就是在创建对象的时候不必给对象指定大小,它的大小会根据需要动态的变化。 关于该类的更多信息,请参见向量(Vector) 栈(Stack) 栈(Stack)实现了一个后进先出(LIFO)的数据结构。 你可以把栈理解为对象的垂直分布的栈,当你添加一个新元素时,就将新元素放在其他元素的顶部。 当你从栈中取元素的时候,就从栈顶取一个元素。换句话说,最后进栈的元素最先被取出。 关于该类的更多信息,请参见栈(Stack)。 字典(Dictionary) 字典(Dictionary) 类是一个抽象类,它定义了键映射到值的数据结构。 当你想要通过特定的键而不是整数索引来访问数据的时候,这时候应该使用 Dictionary。 由于 Dictionary 类是抽象类,所以它只提供了键映射到值的数据结构,而没有提供特定的实现。 关于该类的更多信息,请参见字典( Dictionary)。 Dictionary 类在较新的 Java 版本中已经被弃用(deprecated),推荐使用 Map 接口及其实现类,如 HashMap、TreeMap 等,来代替 Dictionary。