В другом классе я создаю указатель для этой функции.
void(InventoryContainer::*fnDelete)(unsigned int);
Но при попытке вызвать эту функцию,
this->fnDelete(this->IFrom);
студия показывает мне что this в данном случае не корректен.
1. Как правильно вызвать функцию?
InventoryContainer *that;
...
(that->*fnDelete)(IFrom);
2. Где то на StackOverflow видел,что для вызова такой функции нужен ещё объект.Не лучше ли тогда просто передать ссылку на объект и через него и вызвать функцию?
class A {
public:
void f1();
void f2();
};
void (A::*f)();
if (???)
f = &A::f1;
else
f = &A::f2;
...
A *pa;
...
(pa->*f)(); // вызывает f1 или f2
Between the previous and next sequence point an object shall have its stored value
modified at most once by the evaluation of an expression. Furthermore, the prior value
shall be read only to determine the value to be stored.
что такое звук
картинка это набор пикселей расположенных по координатам и состоящих из RGB (255,255,255 это белый )
Превратить звуковую дорожку в график , научиться работать со звуком , чистить его
name specifier 'Vector3<V>::' for declaration does not refer into a class
template <class V, typename T>
Vector3<V> &Vector3<V, T>::operator+=(const Vector3<V> &addVector) {
this->x += addVector.x;
this->y += addVector.y;
this->z += addVector.z;
return *this;
}
выдают одинаково верный результат
ответы в которых люди дают развернутые ответы и цитируют стандарт языка
Люди, которые знакомы с ней, непосредственно брали в руки документ и читали его от корки до корки? Или же это происходило в процесс практики
По идее я должен взять исходники библиотеки и прямо из Go указать пути к исходникам
На какие подводные камни я могу наткнутся при таком использовании?
#include <stdio.h>
int main()
{
int n;
FILE *f = popen("grep -c \"a\" < 1.txt", "r");
fscanf(f, "%d", &n);
pclose(f);
...
}
int i;
int main()
{
i = 1;
return 0;
}
int i;
int f(void)
{
i = 1;
return 0;
}
$ gcc -std=c89 a.c b.c -o a
$ gcc -std=c99 a.c b.c -o a
$ gcc -std=c11 a.c b.c -o a
$ g++ a.c b.c -o a
/tmp/cc8AfU2T.o:(.bss+0x0): multiple definition of `i'
/tmp/ccBOJ29v.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
T f();
...
const T& obj = f();
obj.foo();
T f();
...
const T* const obj = &(f());
obj->foo();
if (arr[0] == arr[1] == arr[2])
почему сравнение значений массива по индексу работает не так, как с обычными переменными
как мне добиться нужного результата?