__stdcall
.Because of argument-dependent lookup, non-member functions and non-member operators defined in the same namespace as a class are considered part of the public interface of that class (if they are found through ADL)
operator>>
никакими магическими силами не переносится в глобальное пространство имен. Он просто находится по ADL, т.к. правильно реализован и является частью интерфейса соответствующего типа. Передача по ссылке подразумевает передачу ссылки на объект. В этом случае реализация метода потенциально может модифицировать переданный объект (например, вызвав метод, изменяющий состояние объекта).
В случае передачи по значению параметр копируется. Изменение параметра не будет заметно на вызывающей стороне.
В Java объекты всегда передаются по ссылке, а примитивы - по значению
Pass By Reference means the passing the address itself rather than passing the value. Pass By Value means passing a copy of the value to be passed.
#include <stdio.h>
#include <stdlib.h>
int main() {
size_t n;
scanf("%zu", &n);
int array[n];
for(size_t i = 0; i < n; ++i)
array[i] = rand();
printf("{");
for(size_t i = 0; i < n; ++i) {
printf("%i", array[i]);
if(i < n - 1)
printf(", ");
else
printf("}\n");
}
return 0;
}
#pragma once
class ExampleClass;
class MyClass {
public:
ExampleClass* ExampleFunction();
};
Смотрел в сторону Qt, но что то как то не сраслось.