我对我在大学看到的这段代码有疑问.
struct nodeList{
int data;
nodeList * next;
};
typedef nodeList * List;
void filter( List &l )
{
List * aux = &l;
while(*aux)
{
if( (*aux)->data > 3 )
{
List toDelete = *aux;
*aux = (*aux)->next;
delete toDelete;
}
else
{
aux = &((*aux)->next);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道,究竟做了List * aux = &l;什么.因为List是nodeList *这样的,代码将是nodeList * * aux = &l;,而实际上我不明白,是指向一个指针的指针,该指针保存指针的地址nodeList struct?
我理解的第二件事是最后一行.aux = &((*aux)->next);
为什么aux没有* …
我得到了这个结构的实现:
struct NodoQ {
Etype elem;
NodoQ *sig;
};
Run Code Online (Sandbox Code Playgroud)
这个代码是下面的,
typedef NodoQ *PtrNodoQ;
PtrNodoQ ppio, fin;
Run Code Online (Sandbox Code Playgroud)
和这个一样吗?
NodoQ* ppio;
NodoQ* fin;
Run Code Online (Sandbox Code Playgroud) 我想知道它是如何工作的,创建一个库并预加载它,以便程序可以使用它而不是include语句中的那个.
这是我正在做的事情,到目前为止还没有工作.
//shared.cpp
int rand(){
return 33;
}
//prograndom.cpp
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
srand(time(NULL));
int i = 10;
while(i--) printf("%d\n", rand()%100);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然后在终端:
$ gcc -shared -fPIC shared.cpp -o libshared.so
$ gcc prograndom.cpp -o prograndom
$ export LD_PRELOAD=/home/bob/desarrollo/libshared.so
Run Code Online (Sandbox Code Playgroud)
最后
$ LD_PRELOAD=/home/bob/desarrollo/libshared.so ./prograndom
Run Code Online (Sandbox Code Playgroud)
哪个不打印33,只是随机数...
我被要求修改一个简单的类,以使其无法实例化和继承。我对于如何使用abstract而不被实例化以及final而不被继承感到困惑。
我应该怎么写这样的课?
提前致谢。