У меня есть класс, у которого есть конструктор, который принимает const char*
. Это:
c::c(const char* str) {
a = 32;
f = 0;
data = new char[strlen(str)];
memcpy(data, str, strlen(str));
}
И функция, которая принимает один из них:
int foo(c& cinst);
Вы можете вызвать эту функцию, передав ей экземпляр c
:
c cinst("asdf");
foo(cinst);
или, поскольку у нас есть явная инициализация, вы можете сделать:
foo("asdf");
, который создаст c
, передав конструктор asdf, а затем передаст полученный объект в foo
.
Однако кажется, что это может быть немного менее эффективно, чем просто перегрузить foo
, чтобы получить const char*
. Стоит ли делать перегрузку для скорости или влияние на производительность настолько мало, что перегрузка является пустой тратой пространства? Я пытаюсь сделать свою программу максимально быстрой, поэтому скорость является важным фактором, равно как и размер, но не так много.