Используя следующий код:
#include <stdio.h>
struct my_struct {
int a;
int b;
my_struct();
};
my_struct::my_struct(void)
{
printf("constructor\n");
}
void my_struct(void)
{
printf("standard function\n");
}
int main (int argc, char *argv[])
{
struct my_struct s;
s.a = 1;
s.b = 2;
printf("%d-%d\n", s.a, s.b);
return 0;
}
я получаю предупреждение компиляции с g++ -Wshadow main.cpp:
main.cpp:15:20: warning: ‘void my_struct()’ hides constructor for ‘struct my_struct’
Я был бы в порядке с этим предупреждением, если бы функция void my_struct фактически заменила my_struct::my_struct. Но, похоже, это не так. Если я запускаю программу, я получаю:
constructor
1-2
Есть идеи, что означает это предупреждение? Это очень раздражает, особенно когда я включаю заголовки C в код C++
-121--1797858-В идеале была бы какая-то константа, содержащая это значение.
Я внедряю код, который имеет собственные анимации перехода, и я бы хотел, чтобы они имели ту же длину, что и анимации перехода платформы.